[release/11.0-preview3] Fix publish-time Framework materialization for multi-client WASM and add test#126378
Open
github-actions[bot] wants to merge 7 commits intorelease/11.0-preview3from
Open
Conversation
…lization Add a proper BlazorMultiClientHosted test asset with two distinct WASM client projects (Client1, Client2) and a server project, each with unique content and StaticWebAssetBasePath. This replaces the synthetic test setup that cloned BlazorBasicTestApp and deleted files to avoid collisions. The test validates that Framework SourceType materialization produces per-project Identity values that work correctly through both the build and publish pipelines. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…asset name
The test harness expects a .csproj named after the TestAsset.Name property
('BlazorMultiClientHosted') in the RunnableProjectSubPath directory.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Match the pattern used by all other wasm test assets (BlazorBasicTestApp, BlazorWebWasm, etc.) which hardcode net11.0 and explicit package versions rather than relying on undefined MSBuild properties. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The build path captures PassThroughCandidates from ConvertDllsToWebcil and routes them through DefineStaticWebAssets(SourceType=Framework) + UpdatePackageStaticWebAssets for per-project materialization. The publish path was missing this — pass-through assets (like HotReload dlls) kept their raw SDK path, causing duplicate Identity crashes in ApplyCompressionNegotiation for multi-client hosted Blazor WASM publish. Mirror the build-time pattern: capture PassThroughCandidates, remove them from webcil candidates, define as Framework assets, and materialize to per-project paths. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
CopyTestAsset already initializes _logPath via InitPaths, which creates the per-test log directory under s_buildEnv.LogRootPath. Use it instead of manually creating a separate directory. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ugh assets" This reverts commit b8b5386.
Two fixes to prevent ComputeWasmPublishAssets from replacing Framework- materialized per-project assets with shared SDK-path originals: 1. Browser.targets: Filter CopyToPublishDirectory=Never items from _WasmResolvedFilesToPublish (defense-in-depth for when metadata survives through ResolvedFileToPublish). 2. ComputeWasmPublishAssets.cs: In ComputeUpdatedAssemblies, skip replacement of Framework-materialized assets (SourceType=Discovered under obj/fx/). These have unique per-project paths from UpdatePackageStaticWebAssets that must be preserved. Without this, both clients in a multi-client hosted scenario get their materialized copies replaced by the same raw SDK path, causing a duplicate key crash in ApplyCompressionNegotiation. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
lewing
approved these changes
Mar 31, 2026
This was referenced Apr 1, 2026
Open
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Backport of #126211 to release/11.0-preview3
/cc @lewing
Customer Impact
[Select one or both of the boxes. Describe how this issue impacts customers, citing the expected and actual behaviors and scope of the issue. If customer-reported, provide the issue number.]
Regression
[If yes, specify when the regression was introduced. Provide the PR or commit if known.]
Testing
[How was the fix verified? How was the issue missed previously? What tests were added?]
Risk
[High/Medium/Low. Justify the indication by mentioning how risks were measured and addressed.]
IMPORTANT: If this backport is for a servicing release, please verify that:
release/X.0-staging, notrelease/X.0.release/X.0(no-stagingsuffix).Package authoring no longer needed in .NET 9
IMPORTANT: Starting with .NET 9, you no longer need to edit a NuGet package's csproj to enable building and bump the version.
Keep in mind that we still need package authoring in .NET 8 and older versions.