Description
Is there an existing issue for this?
- I have searched the existing issues
Describe the bug
Build time for a Razor Class Library with significant static assets (JavaScript files) is more than 4x slower with the .NET 9 SDK than with the .NET 8 SDK.
| SDK Version | 1st Build (after clean/restore) | 2nd Build |
|-------------|---------------------------------|-----------|
| 8.0.404 | 36.95 s | 23.90 s |
| 9.0.100 | 143.5 s | 123.8 s |
Expected Behavior
I would expect no such regression without changing code or at least target level. This appears to be driven mostly by the new ResolveProjectStaticWebAssets
logic, which takes more than 50% of the length of the build, with a good bit of what's left being used by the other "StaticAsset" build steps.
Steps To Reproduce
-
Make sure you have 8.0.404 and 9.0.0 SDKs installed
-
In the
src
folder, set theglobal.json
to{ "sdk": { "version": "8.0.0", "rollForward": "latestMinor" } }
-
Just to prove that these aren't related, you can delete or comment out all the custom
Targets
indymaptic.GeoBlazor.Core.csproj
(otherwise you do need npm and pwsh installed as well) -
Navigate to
src/dymaptic.GeoBlazor.Core
in a terminal, and run the following commandsdotnet clean dotnet restore dotnet build -f net8.0 dotnet build -f net8.0
-
Edit the
global.json
file, replace8.0.0
with9.0.0
-
Run the commands from step 4 again
Exceptions (if any)
No response
.NET Version
No response
Anything else?
I expect this is going to be a big issue for any other libraries that wrap significant JavaScript modules. At the very least, I need a workaround to ameliorate this regression so I can move this library to .NET 9 and beyond.