The 0.0.33 release shipped every Microsoft.NET.Sdk.StaticWebAssets module without its staticwebassets/ folder — dotnet pack ran on a clean CI checkout where wwwroot/ had never been built (no npm run build step before pack). The DLL shipped fine; the React UI 404'd.
Fixed in 0.0.34, but the regression was completely invisible to existing tests because template/SimpleModule.Host consumes modules via ProjectReference to local sources where wwwroot/ is populated from previous dev runs. Real consumers via NuGet hit the broken build.
Fix
Post-pack CI step that:
- Copies the packed
.nupkgs into a temporary local NuGet feed
dotnet new a minimal smoke-test app that consumes them
- Boots the app
curl http://localhost:.../_content/SimpleModule.Users/SimpleModule.Users.pages.js → assert 200
- Repeat for each module that uses
Microsoft.NET.Sdk.StaticWebAssets
This catches the entire class of "build pipeline forgot to run JS build" regressions before they ship. Cost: one CI job, minutes of runtime.
The 0.0.33 release shipped every
Microsoft.NET.Sdk.StaticWebAssetsmodule without itsstaticwebassets/folder —dotnet packran on a clean CI checkout wherewwwroot/had never been built (nonpm run buildstep before pack). The DLL shipped fine; the React UI 404'd.Fixed in 0.0.34, but the regression was completely invisible to existing tests because
template/SimpleModule.Hostconsumes modules viaProjectReferenceto local sources wherewwwroot/is populated from previous dev runs. Real consumers via NuGet hit the broken build.Fix
Post-pack CI step that:
.nupkgs into a temporary local NuGet feeddotnet newa minimal smoke-test app that consumes themcurl http://localhost:.../_content/SimpleModule.Users/SimpleModule.Users.pages.js→ assert 200Microsoft.NET.Sdk.StaticWebAssetsThis catches the entire class of "build pipeline forgot to run JS build" regressions before they ship. Cost: one CI job, minutes of runtime.