-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Description
Describe the bug
When using RestorePackagesWithLockFile in a [hosted] Blazor WebAssembly project, dotnet restore --locked-mode fails across platforms (e.g. development on Windows, building on Linux in CI) due to contentHash of the Microsoft.NET.Sdk.WebAssembly.Pack package differing.
In my case, I do most of my development on my Windows machine, and use the ubuntu-latest images for my GitHub Actions- build log of the failure can be found here.
If I clone to a Linux environment (wsl), dotnet restore --locked-mode reproduces the error from GitHub Actions:
/home/cryptoc1/Developer/wadio/src/App/UI/Wadio.App.UI.csproj : error NU1403:
Package content hash validation failed for Microsoft.NET.Sdk.WebAssembly.Pack.10.0.0. The package is different tha
n the last restore.
Restore failed with 1 error(s) in 1.4s
When I run dotnet restore --force-evaluate on my Windows machine, there are no changes to commit. However, running dotnet restore --force-evaluate in the Linux environment changes the contentHash of the wasm pack:
diff --git a/src/App/UI/packages.lock.json b/src/App/UI/packages.lock.json
index 69d12cc..9beaab7 100644
--- a/src/App/UI/packages.lock.json
+++ b/src/App/UI/packages.lock.json
@@ -151,7 +151,7 @@
"type": "Direct",
"requested": "[10.0.0, )",
"resolved": "10.0.0",
- "contentHash": "jRA47332BBtRFmHdeIcZyssj2vplKl7/0GoaNVVQQXKFvPcpBgR5R1jTGqMyWb89skl6B6/L/uZ4WE2IEwZPJA=="
+ "contentHash": "bewqpnzRlrdGaiT4f8aSbHiKuFhm/HWKcOAgvhFpYL1OhWR0zWakDnCB67XaJ33yQKj0gsIEMl1vry6c9iGpwQ=="
},
"Microsoft.SourceLink.GitHub": {
"type": "Direct",
Further technical details
details of dotnet --info (Windows)
.NET SDK: Version: 10.0.100 Commit: b0f34d51fc Workload version: 10.0.100.1 MSBuild version: 18.0.2+b0f34d51fRuntime Environment:
OS Name: Windows
OS Version: 10.0.26200
OS Platform: Windows
RID: win-x64
Base Path: C:\Program Files\dotnet\sdk\10.0.100\.NET workloads installed:
[wasm-tools]
Installation Source: SDK 10.0.100
Manifest Version: 10.0.100/10.0.100
Manifest Path: C:\Program Files\dotnet\sdk-manifests\10.0.100\microsoft.net.workload.mono.toolchain.current\10.0.100\WorkloadManifest.json
Install Type: MsiConfigured to use workload sets when installing new manifests.
Host:
Version: 10.0.0
Architecture: x64
Commit: b0f34d51fc.NET SDKs installed:
8.0.416 [C:\Program Files\dotnet\sdk]
9.0.307 [C:\Program Files\dotnet\sdk]
10.0.100 [C:\Program Files\dotnet\sdk].NET runtimes installed:
Microsoft.AspNetCore.App 8.0.22 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 9.0.11 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 10.0.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 8.0.22 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 9.0.11 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 10.0.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 8.0.22 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 9.0.11 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 10.0.0 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]Other architectures found:
NoneEnvironment variables:
DOTNET_CLI_TELEMETRY_OPTOUT [1]
DOTNET_NOLOGO [1]global.json file:
X:\wadio\global.jsonLearn more:
https://aka.ms/dotnet/info
Download .NET:
https://aka.ms/dotnet/download
details of dotnet --info (Linux)
.NET SDK:
Version: 10.0.100
Commit: b0f34d51fc
Workload version: 10.0.100.1
MSBuild version: 18.0.2+b0f34d51f
Runtime Environment:
OS Name: ubuntu
OS Version: 24.04
OS Platform: Linux
RID: linux-x64
Base Path: /home/cryptoc1/.dotnet/sdk/10.0.100/
.NET workloads installed:
[wasm-tools]
Installation Source: SDK 10.0.100
Manifest Version: 10.0.100/10.0.100
Manifest Path: /home/cryptoc1/.dotnet/sdk-manifests/10.0.100/microsoft.net.workload.mono.toolchain.current/10.0.100/WorkloadManifest.json
Install Type: FileBased
[wasm-tools-net9]
Installation Source: SDK 10.0.100
Manifest Version: 10.0.100/10.0.100
Manifest Path: /home/cryptoc1/.dotnet/sdk-manifests/10.0.100/microsoft.net.workload.mono.toolchain.net9/10.0.100/WorkloadManifest.json
Install Type: FileBased
Configured to use workload sets when installing new manifests.
Host:
Version: 10.0.0
Architecture: x64
Commit: b0f34d51fc
.NET SDKs installed:
9.0.307 [/home/cryptoc1/.dotnet/sdk]
10.0.100 [/home/cryptoc1/.dotnet/sdk]
.NET runtimes installed:
Microsoft.AspNetCore.App 9.0.11 [/home/cryptoc1/.dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 10.0.0 [/home/cryptoc1/.dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 9.0.11 [/home/cryptoc1/.dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 10.0.0 [/home/cryptoc1/.dotnet/shared/Microsoft.NETCore.App]
Other architectures found:
None
Environment variables:
DOTNET_ROOT [/home/cryptoc1/.dotnet]
global.json file:
/home/cryptoc1/Developer/wadio/global.json
Learn more:
https://aka.ms/dotnet/info
Download .NET:
https://aka.ms/dotnet/download
Installed Software (Windows):
- VS2026
- .NET SDK:
10.0.100,9.0.307,8.0.416 - .NET Workloads:
maui,wasm-tools,wasm-tools-net9 - NodeJS:
v24.11.0
Installed Software (WSL - Ubuntu 24.04)
- .NET SDK:
10.0.100,9.0.307 - .NET Workloads:
wasm-tools,wasm-tools-net9 - NodeJS:
v24.11.0