diff --git a/src/mono/nuget/Microsoft.NET.Sdk.WebAssembly.Pack/build/Microsoft.NET.Sdk.WebAssembly.Browser.targets b/src/mono/nuget/Microsoft.NET.Sdk.WebAssembly.Pack/build/Microsoft.NET.Sdk.WebAssembly.Browser.targets
index 2cd9e68f92b974..d462dfad666eb0 100644
--- a/src/mono/nuget/Microsoft.NET.Sdk.WebAssembly.Pack/build/Microsoft.NET.Sdk.WebAssembly.Browser.targets
+++ b/src/mono/nuget/Microsoft.NET.Sdk.WebAssembly.Pack/build/Microsoft.NET.Sdk.WebAssembly.Browser.targets
@@ -680,9 +680,14 @@ Copyright (c) .NET Foundation. All rights reserved.
+ config files, extensions, property stamp) are older than the output, the target is skipped.
+ Skipped during nested publish: the nested publish runs the full Build chain which would
+ create the boot JSON without VFS entries (LinkContentToWwwroot is skipped). If we wrote
+ it here, the outer build's Inputs/Outputs check would find the stale output and skip
+ regeneration, leaving the final boot JSON without VFS content files. -->
@@ -733,8 +738,10 @@ Copyright (c) .NET Foundation. All rights reserved.
-
+ This target always runs to ensure items are populated even when _WriteBuildWasmBootJsonFile is skipped.
+ Skipped during nested publish (same reason as _WriteBuildWasmBootJsonFile). -->
+