Skip to content

Conversation

@maraf
Copy link
Member

@maraf maraf commented Oct 15, 2025

In dotnet/installer#19199 we have migrated to always use .NET 10 SDK pack, but we missed to update workload manifest for targeting .NET 9.

The PR should enforce that SDK pack will always match current version of servicing release.

Also related change in .NET 9 dotnet/runtime#93031.

Contributes to dotnet/aspnetcore#64049

@maraf maraf added this to the 11.0.1xx milestone Oct 15, 2025
@maraf maraf self-assigned this Oct 15, 2025
@maraf maraf changed the title [wasm] Always use current SDK pack [wasm] Always update SDK pack version from workload to current for down level TFM Oct 15, 2025
@maraf maraf requested review from akoeplinger and lewing October 15, 2025 15:06
@maraf maraf marked this pull request as ready for review October 15, 2025 15:06
Copilot AI review requested due to automatic review settings October 15, 2025 15:06
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR updates the workload manifest configuration to ensure WebAssembly SDK pack versions always use the current .NET 10 version instead of being conditionally set based on target framework. This change aligns the .NET 9 workload manifest behavior with the .NET 10 manifest, ensuring consistent SDK pack versioning across servicing releases.

Key Changes:

  • Removed conditional WebAssembly SDK pack version override for .NET 9.0 target framework from the net9 workload manifest
  • Updated Current manifest to unconditionally set WebAssembly SDK pack version to current runtime pack version for all target frameworks

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
Microsoft.NET.Workload.Mono.Toolchain.net9.Manifest/WorkloadManifest.targets.in Removes the .NET 9.0-specific SDK pack version override to prevent downlevel SDK versions
Microsoft.NET.Workload.Mono.Toolchain.Current.Manifest/WorkloadManifest.targets.in Updates SDK pack version assignment to unconditionally use current runtime version for all frameworks

@maraf
Copy link
Member Author

maraf commented Oct 15, 2025

/backport to release/10.0.1xx

@github-actions
Copy link
Contributor

Started backporting to release/10.0.1xx: https://github.com/dotnet/sdk/actions/runs/18535152990

@maraf maraf merged commit 7eca15c into main Oct 16, 2025
27 checks passed
@maraf maraf deleted the maraf/WasmWorkloadSdkPack branch October 16, 2025 11:58
jonpryor added a commit to unoplatform/uno that referenced this pull request Oct 20, 2025
Context: dotnet/aspnetcore#63970
Context: dotnet/aspnetcore#64041
Context: dotnet/runtime#120790
Context: dotnet/sdk#51269
Context: dotnet/aspnetcore#64041 (comment)

.NET 10 RC2 broke WebAssembly, causing apps to crash:

	 [MONO] * Assertion at /__w/1/s/src/runtime/src/mono/mono/metadata/assembly.c:2718, condition `<disabled>' not met
	Error
	    at Mc (dotnet.runtime.fn94ls2wwa.js:3:172298)
	    at dotnet.native.ggch313emy.wasm:0xac62
	    at dotnet.native.ggch313emy.wasm:0x43c51
	    at dotnet.native.ggch313emy.wasm:0x42301
	    at dotnet.native.ggch313emy.wasm:0x42422
	    at dotnet.native.ggch313emy.wasm:0x42465
	    at dotnet.native.ggch313emy.wasm:0x42438
	    at dotnet.native.ggch313emy.wasm:0x8cd9
	    at Module._mono_wasm_load_runtime [as mono_wasm_load_runtime] (dotnet.native.98v1chuo8c.js:8:113231)
	    at dotnet.runtime.fn94ls2wwa.js:3:188734
	dotnet.runtime.fn94ls2wwa.js:3
	 MONO_WASM: mono_wasm_load_runtime () failed [object Object]

The fix in dotnet/sdk#51269 is to update
`%(KnownWebAssemblySdkPack.WebAssemblySdkPackVersion)`.
The question is "update *to what*?"  As the files are from the
[Microsoft.NET.Workload.Mono.Toolchain.Current.Manifest-10.0.100-rc.2][0]
NuGet package, and there are only two available versions, and the
*current* `%(KnownWebAssemblySdkPack.WebAssemblySdkPackVersion)`
value is `10.0.0-rc.2.25502.107`, let's try using
`10.0.100-rc.2.25502.107`!

Will it work? 🤷‍♂️

[0]: https://www.nuget.org/packages/Microsoft.NET.Workload.Mono.Toolchain.Current.Manifest-10.0.100-rc.2/10.0.100-rc.2.25502.107
jonpryor added a commit to unoplatform/uno that referenced this pull request Oct 20, 2025
Context: dotnet/aspnetcore#63970
Context: dotnet/aspnetcore#64041
Context: dotnet/runtime#120790
Context: dotnet/sdk#51269
Context: dotnet/aspnetcore#64041 (comment)

.NET 10 RC2 broke WebAssembly, causing apps to crash:

	 [MONO] * Assertion at /__w/1/s/src/runtime/src/mono/mono/metadata/assembly.c:2718, condition `<disabled>' not met
	Error
	    at Mc (dotnet.runtime.fn94ls2wwa.js:3:172298)
	    at dotnet.native.ggch313emy.wasm:0xac62
	    at dotnet.native.ggch313emy.wasm:0x43c51
	    at dotnet.native.ggch313emy.wasm:0x42301
	    at dotnet.native.ggch313emy.wasm:0x42422
	    at dotnet.native.ggch313emy.wasm:0x42465
	    at dotnet.native.ggch313emy.wasm:0x42438
	    at dotnet.native.ggch313emy.wasm:0x8cd9
	    at Module._mono_wasm_load_runtime [as mono_wasm_load_runtime] (dotnet.native.98v1chuo8c.js:8:113231)
	    at dotnet.runtime.fn94ls2wwa.js:3:188734
	dotnet.runtime.fn94ls2wwa.js:3
	 MONO_WASM: mono_wasm_load_runtime () failed [object Object]

The fix in dotnet/sdk#51269 is to update
`%(KnownWebAssemblySdkPack.WebAssemblySdkPackVersion)`.
The question is "update *to what*?"  `%(WebAssemblySdkPackVersion)`
refers to the [Microsoft.NET.Sdk.WebAssembly.Pack][0] NuGet package
version, and the only `-rc.2` version doesn't work.

What if we try the RC1 version?

Will it work? 🤷‍♂️

[0]: https://www.nuget.org/packages/Microsoft.NET.Sdk.WebAssembly.Pack
jonpryor added a commit to unoplatform/uno that referenced this pull request Oct 23, 2025
Context: dotnet/aspnetcore#63970
Context: dotnet/aspnetcore#63970 (comment)
Context: dotnet/aspnetcore#64041
Context: dotnet/aspnetcore#64041 (comment)
Context: dotnet/runtime#120790
Context: dotnet/sdk#51269

.NET 10 RC2 broke WebAssembly, causing apps to crash:

	 [MONO] * Assertion at /__w/1/s/src/runtime/src/mono/mono/metadata/assembly.c:2718, condition `<disabled>' not met
	Error
	    at Mc (dotnet.runtime.fn94ls2wwa.js:3:172298)
	    at dotnet.native.ggch313emy.wasm:0xac62
	    at dotnet.native.ggch313emy.wasm:0x43c51
	    at dotnet.native.ggch313emy.wasm:0x42301
	    at dotnet.native.ggch313emy.wasm:0x42422
	    at dotnet.native.ggch313emy.wasm:0x42465
	    at dotnet.native.ggch313emy.wasm:0x42438
	    at dotnet.native.ggch313emy.wasm:0x8cd9
	    at Module._mono_wasm_load_runtime [as mono_wasm_load_runtime] (dotnet.native.98v1chuo8c.js:8:113231)
	    at dotnet.runtime.fn94ls2wwa.js:3:188734
	dotnet.runtime.fn94ls2wwa.js:3
	 MONO_WASM: mono_wasm_load_runtime () failed [object Object]

The fix in dotnet/sdk#51269 is to update
`%(KnownWebAssemblySdkPack.WebAssemblySdkPackVersion)`.
The question is "update *to what*?"  `%(WebAssemblySdkPackVersion)`
refers to the [Microsoft.NET.Sdk.WebAssembly.Pack][0] NuGet package
version, and the only `-rc.2` version doesn't work.  Using the `-rc.1`
version with RC2 *also* doesn't work.

This thought appears unviable: whatever version specified there needs
to be a published NuGet package version, and wherever the fix is, it
doesn't appear to have been published yet.

dotnet/aspnetcore#63970 presents an alternative workaround:

> The issue in .NET 10 RC2 SDK is related to publishing fingerprinted
> assets in WebAssembly based projects. The workaround is to disable
> fingerprinting.

This can be done by settting `$(WasmFingerprintAssets)`=false.

Try it!  Does It Work?

[0]: https://www.nuget.org/packages/Microsoft.NET.Sdk.WebAssembly.Pack
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants