Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@

<TestTrimmedApps Condition="'$(ContinuousIntegrationBuild)' == 'true'">true</TestTrimmedApps>
<TestTrimmedApps Condition="'$(Configuration)' == 'Release'">true</TestTrimmedApps>
<!-- The trimmed app publishes share project intermediate outputs, so their project references cannot run concurrently. -->
<BuildInParallel Condition="'$(TestTrimmedApps)' == 'true'">false</BuildInParallel>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this increase CI time? Do we want to ensure that apps use separate intermediate directories?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why does it happen that a single app is published in parallel (more than once) for a single build?
Isn't the underlaying issue in msbuild not reusing existing build/project instance?
Possibly by passing different props?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot assess and resolve please

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Assessed; I don’t think a code change is needed beyond fc00a63. This can increase only the Release/CI Components E2E trimmed-app preparation because those trimmed app project references now run serially; Debug/local and product builds keep their existing parallelism.

Separate intermediate directories would need to partition the referenced framework project intermediates, not just each app's PublishDir, because the collision is under artifacts\obj\Microsoft.AspNetCore.Components.WebAssembly\Release\net11.0\compressed\publish\.... That would be a broader and likely more expensive workaround.

This isn't one app intentionally being published twice. The E2E project publishes multiple trimmed apps in parallel, and those nested publishes each traverse Microsoft.AspNetCore.Components.WebAssembly with the same effective Configuration/TFM/static-web-asset identity. MSBuild doesn't coalesce those nested Publish traversals across the parallel project-reference invocations, so serializing at the E2E project owner is the smallest scoped fix.

</PropertyGroup>

<ItemGroup>
Expand Down
Loading