Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hot reload extra slow for changes in Rider due to backup files with ~ suffix #47912

Open
angularsen opened this issue Mar 26, 2025 · 3 comments
Assignees

Comments

@angularsen
Copy link

angularsen commented Mar 26, 2025

Describe the bug

Hot reload for Blazor Server is significantly slower (~3x) when editing with Rider compared to VSCode. For large code bases, we have seen hot reloads of 20 seconds.

Rider has a Backup files before saving option enabled by default, like many other editors, that temporarily saves backup files with ~ suffix. This seems to trigger additional hot reloads or at least slow down hot reload.

This is a regression when upgrading .NET SDK from .NET 8.0.407 to 9.0.202, and upgrading Blazor app from .NET 8 to .NET 9.

Workaround

Disable Backup files before saving in Rider Settings > Appearance & Behavior > System Settings > Autosave.

Image

To Reproduce

  • Checkout https://github.com/angularsen/dotnet9-watch-slow-repro
  • dotnet watch --verbose --project Blazor9 and wait for browser to launch
  • Make a visible change to wwwroot/app.css or Components/Pages/Home.razor to warm up hot reload (first time is slower)
  • Compare hot reload duration from when saving file until change is visible in browser
    • ~3 seconds - Rider with Backup files before saving option enabled in settings
    • ~1 second - Rider with Backup files before saving option disabled in settings
    • ~1 second - VSCode, which does not create temporary files

Rider change with backup file (~3 seconds)

dotnet watch ⌚ Updated  '/xxx/Blazor9/wwwroot/app.css'.
dotnet watch ⌚ File change: Update '/xxx/Blazor9/wwwroot/app.css'.
dotnet watch ⌚ Updated  '/xxx/Blazor9/wwwroot/app.css~'.
dotnet watch ⌚ File change: Update '/xxx/Blazor9/wwwroot/app.css~'.
dotnet watch ⌚ Added  '/xxx/Blazor9/wwwroot/app.css~'.
dotnet watch ⌚ File change: Add '/xxx/Blazor9/wwwroot/app.css~'.
dotnet watch ⌚ Deleted '/xxx/Blazor9/wwwroot/app.css~'.
dotnet watch ⌚ File change: Delete '/xxx/Blazor9/wwwroot/app.css~'.
dotnet watch ⌚ File addition triggered re-evaluation.
dotnet watch ⌚ Running MSBuild target 'GenerateWatchList' on '/xxx/Blazor9/Blazor9.csproj'
dotnet watch 🚀 Launched '/usr/local/share/dotnet/dotnet' with arguments 'msbuild /restore /nologo /v:m /xxx/Blazor9/Blazor9.csproj /t:GenerateWatchList /p:_DotNetWatchListFile=/var/folders/33/nl5n0vfd0xxdt25svfm5dc9m0000gn/T/tmpddLRTX.tmp /p:DotNetWatchBuild=true /p:DesignTimeBuild=true /p:CustomAfterMicrosoftCommonTargets=/usr/local/share/dotnet/sdk/9.0.202/DotnetTools/dotnet-watch/9.0.202-servicing.25161.14/tools/net9.0/any/DotNetWatch.targets /p:CustomAfterMicrosoftCommonCrossTargetingTargets=/usr/local/share/dotnet/sdk/9.0.202/DotnetTools/dotnet-watch/9.0.202-servicing.25161.14/tools/net9.0/any/DotNetWatch.targets': process id 53037
dotnet watch ⌚ Process id 53037 ran for 1020ms and exited with exit code 0.
dotnet watch 🔨   Determining projects to restore...
dotnet watch 🔨   All projects are up-to-date for restore.
dotnet watch ⌚ Watching 60 file(s) for changes
dotnet watch ⌚ Solution:
dotnet watch ⌚   Project: /xxx/Blazor9/Blazor9.csproj
dotnet watch ⌚     Document: /xxx/Blazor9/MyScopedService.cs [6G7OlVErU2k82Zffcbgind2HbOASMV4zckRCD66IaMA=]
dotnet watch ⌚     Document: /xxx/Blazor9/Program.cs [RAg8DsctLxS+uKr81cM+GYpqcW2hz9iaO4tVUe+YT/I=]
dotnet watch ⌚     Document: /xxx/Blazor9/obj/Debug/net9.0/Blazor9.GlobalUsings.g.cs [zNOfYtkaH2fDUlF4wBMd//cYs1xeWL6xT2qAgn8h6tE=]
dotnet watch ⌚     Document: /xxx/Blazor9/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs [wFVmrIF4bp48hfUHcvah88bUgmeJ01+gr+jhzn8heaw=]
dotnet watch ⌚     Document: /xxx/Blazor9/obj/Debug/net9.0/Blazor9.AssemblyInfo.cs [rcqTNk6QQbO60t1AsZgs15YINrEGIF9/GjeXskFYjQ0=]
dotnet watch ⌚     Additional: /xxx/Blazor9/Components/App.razor [RMhQLpWgBJ3sIx+wxbAEngtf4DHPt7kTzZ6b0LOh43M=]
dotnet watch ⌚     Additional: /xxx/Blazor9/Components/Pages/Counter.razor [tQ2hG45x4FsZn2IYgrwFhXOgfQf2uMum1uHZAiS+8RQ=]
dotnet watch ⌚     Additional: /xxx/Blazor9/Components/Pages/Error.razor [q0hJOWpxahx8YhUpgF5n47HI0w5K7uOX692On9Yr6Cc=]
dotnet watch ⌚     Additional: /xxx/Blazor9/Components/Pages/Home.razor [FAu3VPKmnCtMGpMcH1nkIDQoGTGb8AcBDBrvWc1DllU=]
dotnet watch ⌚     Additional: /xxx/Blazor9/Components/Pages/Weather.razor [j8UbHR5CTEMLX6Liw5HnvDTKllVyV17GxuUI8kGpgC4=]
dotnet watch ⌚     Additional: /xxx/Blazor9/Components/Routes.razor [PWZtyoSSyEsjBbRRuObAcgfJAC1x8VBwl1BYAjqcCuw=]
dotnet watch ⌚     Additional: /xxx/Blazor9/Components/_Imports.razor [r+11n/jQiK/BiSvgE8jPwWdKDt5zC6lEXCnHtzfz0aw=]
dotnet watch ⌚     Additional: /xxx/Blazor9/Components/Layout/MainLayout.razor [1G/GM7lT754cX7e1tpe/HIh2dN+L0H9t0ge5OMs7NAg=]
dotnet watch ⌚     Additional: /xxx/Blazor9/Components/Layout/NavMenu.razor [pZ6O4M2EcU4kNz3OMOPfdNo4CzEELpaHMpQWlmr5ivk=]
dotnet watch ⌚     Config: /xxx/Blazor9/obj/Debug/net9.0/Blazor9.GeneratedMSBuildEditorConfig.editorconfig [c9NWoujozrHlI4U2W6HyUEfZf7roajquMOTe/zc2avQ=]
dotnet watch ⌚     Config: /usr/local/share/dotnet/sdk/9.0.202/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_9_default.globalconfig [ZRFi6tgci8t+nmaiOxtng/+Dca1YjDn+JWY1//eQ7FQ=]
dotnet watch ⌚ File added: ./Blazor9/wwwroot/app.css~
dotnet watch ⌚ File updated: ./Blazor9/wwwroot/app.css
dotnet watch ⌚ Handling file change event for static content /xxx/Blazor9/wwwroot/app.css.
dotnet watch ⌚ [Blazor9 (net9.0)] Refreshing browser.
dotnet watch ⌚ Sending static file update request for asset 'app.css'.
dotnet watch 🔥 Hot Reload of static files succeeded.
dotnet watch ⌚ No C# changes to apply.
dotnet watch ⌚ Updating diagnostics in the browser.
dotnet watch 🔥 Hot reload change handled in 1ms.

VSCode change (~1 second)

dotnet watch ⌚ Updated  '/xxx/Blazor9/wwwroot/app.css'.
dotnet watch ⌚ File change: Update '/xxx/Blazor9/wwwroot/app.css'.
dotnet watch ⌚ File updated: ./Blazor9/wwwroot/app.css
dotnet watch ⌚ Solution:
dotnet watch ⌚   Project: /xxx/Blazor9/Blazor9.csproj
dotnet watch ⌚     Document: /xxx/Blazor9/MyScopedService.cs [6G7OlVErU2k82Zffcbgind2HbOASMV4zckRCD66IaMA=]
dotnet watch ⌚     Document: /xxx/Blazor9/Program.cs [RAg8DsctLxS+uKr81cM+GYpqcW2hz9iaO4tVUe+YT/I=]
dotnet watch ⌚     Document: /xxx/Blazor9/obj/Debug/net9.0/Blazor9.GlobalUsings.g.cs [zNOfYtkaH2fDUlF4wBMd//cYs1xeWL6xT2qAgn8h6tE=]
dotnet watch ⌚     Document: /xxx/Blazor9/obj/Debug/net9.0/.NETCoreApp,Version=v9.0.AssemblyAttributes.cs [wFVmrIF4bp48hfUHcvah88bUgmeJ01+gr+jhzn8heaw=]
dotnet watch ⌚     Document: /xxx/Blazor9/obj/Debug/net9.0/Blazor9.AssemblyInfo.cs [rcqTNk6QQbO60t1AsZgs15YINrEGIF9/GjeXskFYjQ0=]
dotnet watch ⌚     Additional: /xxx/Blazor9/Components/App.razor [RMhQLpWgBJ3sIx+wxbAEngtf4DHPt7kTzZ6b0LOh43M=]
dotnet watch ⌚     Additional: /xxx/Blazor9/Components/Pages/Counter.razor [tQ2hG45x4FsZn2IYgrwFhXOgfQf2uMum1uHZAiS+8RQ=]
dotnet watch ⌚     Additional: /xxx/Blazor9/Components/Pages/Error.razor [q0hJOWpxahx8YhUpgF5n47HI0w5K7uOX692On9Yr6Cc=]
dotnet watch ⌚     Additional: /xxx/Blazor9/Components/Pages/Home.razor [FAu3VPKmnCtMGpMcH1nkIDQoGTGb8AcBDBrvWc1DllU=]
dotnet watch ⌚     Additional: /xxx/Blazor9/Components/Pages/Weather.razor [j8UbHR5CTEMLX6Liw5HnvDTKllVyV17GxuUI8kGpgC4=]
dotnet watch ⌚     Additional: /xxx/Blazor9/Components/Routes.razor [PWZtyoSSyEsjBbRRuObAcgfJAC1x8VBwl1BYAjqcCuw=]
dotnet watch ⌚     Additional: /xxx/Blazor9/Components/_Imports.razor [r+11n/jQiK/BiSvgE8jPwWdKDt5zC6lEXCnHtzfz0aw=]
dotnet watch ⌚     Additional: /xxx/Blazor9/Components/Layout/MainLayout.razor [1G/GM7lT754cX7e1tpe/HIh2dN+L0H9t0ge5OMs7NAg=]
dotnet watch ⌚     Additional: /xxx/Blazor9/Components/Layout/NavMenu.razor [pZ6O4M2EcU4kNz3OMOPfdNo4CzEELpaHMpQWlmr5ivk=]
dotnet watch ⌚     Config: /xxx/Blazor9/obj/Debug/net9.0/Blazor9.GeneratedMSBuildEditorConfig.editorconfig [c9NWoujozrHlI4U2W6HyUEfZf7roajquMOTe/zc2avQ=]
dotnet watch ⌚     Config: /usr/local/share/dotnet/sdk/9.0.202/Sdks/Microsoft.NET.Sdk/analyzers/build/config/analysislevel_9_default.globalconfig [ZRFi6tgci8t+nmaiOxtng/+Dca1YjDn+JWY1//eQ7FQ=]
dotnet watch ⌚ Handling file change event for static content /xxx/Blazor9/wwwroot/app.css.
dotnet watch ⌚ [Blazor9 (net9.0)] Refreshing browser.
dotnet watch ⌚ Sending static file update request for asset 'app.css'.
dotnet watch 🔥 Hot Reload of static files succeeded.
dotnet watch ⌚ No C# changes to apply.
dotnet watch ⌚ Updating diagnostics in the browser.
dotnet watch 🔥 Hot reload change handled in 3ms.

Further technical details

  • IDE: Rider 2024.3.6 and VSCode 1.98.2 (Universal)
  • Machine: Mac M1 Max (arm64)
  • OS: macOS Sequoia 15.3.2
❯ dotnet --info
.NET SDK:
 Version:           9.0.202
 Commit:            3a53853c30
 Workload version:  9.0.200-manifests.5c4e24dc
 MSBuild version:   17.13.13+1c2026462

Runtime Environment:
 OS Name:     Mac OS X
 OS Version:  15.3
 OS Platform: Darwin
 RID:         osx-arm64
 Base Path:   /usr/local/share/dotnet/sdk/9.0.202/

.NET workloads installed:
 [maui-ios]
   Installation Source: SDK 9.0.200
   Manifest Version:    9.0.14/9.0.100
   Manifest Path:       /usr/local/share/dotnet/sdk-manifests/9.0.100/microsoft.net.sdk.maui/9.0.14/WorkloadManifest.json
   Install Type:        FileBased

 [maui-android]
   Installation Source: SDK 9.0.200
   Manifest Version:    9.0.14/9.0.100
   Manifest Path:       /usr/local/share/dotnet/sdk-manifests/9.0.100/microsoft.net.sdk.maui/9.0.14/WorkloadManifest.json
   Install Type:        FileBased

Configured to use loose manifests when installing new manifests.

Host:
  Version:      9.0.3
  Architecture: arm64
  Commit:       831d23e561

.NET SDKs installed:
  8.0.201 [/usr/local/share/dotnet/sdk]
  8.0.300 [/usr/local/share/dotnet/sdk]
  8.0.403 [/usr/local/share/dotnet/sdk]
  9.0.102 [/usr/local/share/dotnet/sdk]
  9.0.200 [/usr/local/share/dotnet/sdk]
  9.0.202 [/usr/local/share/dotnet/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 6.0.25 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 7.0.1 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 7.0.14 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 8.0.0 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 8.0.2 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 8.0.5 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 8.0.10 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 9.0.1 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 9.0.2 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 9.0.3 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 6.0.25 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 7.0.1 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 7.0.14 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 8.0.0 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 8.0.2 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 8.0.5 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 8.0.10 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 9.0.1 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 9.0.2 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 9.0.3 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]

Other architectures found:
  x64   [/usr/local/share/dotnet]
    registered at [/etc/dotnet/install_location_x64]

Environment variables:
  Not set

global.json file:
  Not found

Related

#45810
#45539
#44910
#47179

https://youtrack.jetbrains.com/issue/RIDER-102534/Backup-save-files-create-temporary-files-suffix-that-prevent-editing

@tmat
Copy link
Member

tmat commented Mar 26, 2025

Does it only reproduce on MacOS?

@angularsen
Copy link
Author

angularsen commented Mar 26, 2025

@tmat I just tested on my Windows 11 desktop PC, and it seems to stay very fast despite temporary files being saved and showing up in the console output. Less than 1 second from change to visual change.

Maybe this indicates the problem is isolated to Mac, and possibly Apple Silicon Macs (arm64)?
The laptop is a Mac M1 Max with the latest macOS Sequoia 15.3.2.

I can't say for sure how the Windows PC stacks up against the Mac laptop on performance, but they are generally on par regarding build times in our other projects.

Hot reload output on Windows (< 1 second):

dotnet watch ⌚ Updated  'X:\dm\_other\blazor9-hotreload-repro\Blazor9\wwwroot'.
dotnet watch ⌚ Added  'X:\dm\_other\blazor9-hotreload-repro\Blazor9\wwwroot\app.css~'.
dotnet watch ⌚ File change: Add 'X:\dm\_other\blazor9-hotreload-repro\Blazor9\wwwroot\app.css~'.
dotnet watch ⌚ Updated  'X:\dm\_other\blazor9-hotreload-repro\Blazor9\wwwroot\app.css~'.
dotnet watch ⌚ File change: Update 'X:\dm\_other\blazor9-hotreload-repro\Blazor9\wwwroot\app.css~'.
dotnet watch ⌚ Updated  'X:\dm\_other\blazor9-hotreload-repro\Blazor9\wwwroot\app.css~'.
dotnet watch ⌚ File change: Update 'X:\dm\_other\blazor9-hotreload-repro\Blazor9\wwwroot\app.css~'.
dotnet watch ⌚ Updated  'X:\dm\_other\blazor9-hotreload-repro\Blazor9\wwwroot\app.css'.
dotnet watch ⌚ File change: Update 'X:\dm\_other\blazor9-hotreload-repro\Blazor9\wwwroot\app.css'.
dotnet watch ⌚ Updated  'X:\dm\_other\blazor9-hotreload-repro\Blazor9\wwwroot\app.css'.
dotnet watch ⌚ File change: Update 'X:\dm\_other\blazor9-hotreload-repro\Blazor9\wwwroot\app.css'.
dotnet watch ⌚ Deleted 'X:\dm\_other\blazor9-hotreload-repro\Blazor9\wwwroot\app.css~'.
dotnet watch ⌚ File change: Delete 'X:\dm\_other\blazor9-hotreload-repro\Blazor9\wwwroot\app.css~'.
dotnet watch ⌚ File updated: .\wwwroot\app.css
dotnet watch ⌚ Solution:
dotnet watch ⌚   Project: X:\dm\_other\blazor9-hotreload-repro\Blazor9\Blazor9.csproj
dotnet watch ⌚     Document: X:\dm\_other\blazor9-hotreload-repro\Blazor9\MyScopedService.cs [K2a0zQSsRvI1KqHprU6p3gq68X4NW0XNe1qAVlptvWA=]
dotnet watch ⌚     Document: X:\dm\_other\blazor9-hotreload-repro\Blazor9\Program.cs [p8Q2if+bxtHbuPAjJnmTGKrhEWMNguGgOURHmn9TSuk=]
dotnet watch ⌚     Document: X:\dm\_other\blazor9-hotreload-repro\Blazor9\obj\Debug\net9.0\Blazor9.GlobalUsings.g.cs [G8FpEDfClSX0sQT+Bad7vvBAonzOKreE7Sgib4yLXjU=]
dotnet watch ⌚     Document: X:\dm\_other\blazor9-hotreload-repro\Blazor9\obj\Debug\net9.0\.NETCoreApp,Version=v9.0.AssemblyAttributes.cs [nnZJnE5ctiOtSInqqZsaU9nJcO/PkC2LCW54oZ7kKF0=]
dotnet watch ⌚     Document: X:\dm\_other\blazor9-hotreload-repro\Blazor9\obj\Debug\net9.0\Blazor9.AssemblyInfo.cs [fEb6J3Mv0bOIhZTdR/stK7rw5NlKcfeiJmeN7CFlYHA=]
dotnet watch ⌚     Additional: X:\dm\_other\blazor9-hotreload-repro\Blazor9\Components\App.razor [ZfdS1cZFUSpC3AgxsG6yjcCXNISvrpSTmNGtPmxVGuA=]
dotnet watch ⌚     Additional: X:\dm\_other\blazor9-hotreload-repro\Blazor9\Components\Pages\Counter.razor [CTDVv0E27X3rYPIV1sMo/28fB/vkhd9Z1xBfaluuXXQ=]
dotnet watch ⌚     Additional: X:\dm\_other\blazor9-hotreload-repro\Blazor9\Components\Pages\Error.razor [W/MY9AWNgJmy57VubEEg3aHYV8j6QIJB6QGCr6ERet0=]
dotnet watch ⌚     Additional: X:\dm\_other\blazor9-hotreload-repro\Blazor9\Components\Pages\Home.razor [Cg0k7PpnzXgke+j7KhlwdwSNpIiO1rp0laRuaIS+bEE=]
dotnet watch ⌚     Additional: X:\dm\_other\blazor9-hotreload-repro\Blazor9\Components\Pages\Weather.razor [vWgIwmIrw/dk70SYJA3NLPQQjOwa2swXtVsdbAczfWI=]
dotnet watch ⌚     Additional: X:\dm\_other\blazor9-hotreload-repro\Blazor9\Components\Routes.razor [IElES45i+nHE//bb/0Jr4qeOAt3340dB4K2Fizbz73E=]
dotnet watch ⌚     Additional: X:\dm\_other\blazor9-hotreload-repro\Blazor9\Components\_Imports.razor [/zX/gErknEEQXZLMp0yfdeit5NVVJd1VCJGIBMY2D7M=]
dotnet watch ⌚     Additional: X:\dm\_other\blazor9-hotreload-repro\Blazor9\Components\Layout\MainLayout.razor [Yh0v5Q9JP3xoTBOe218tnHse2oNdP/HAE9wLig6Ycv4=]
dotnet watch ⌚     Additional: X:\dm\_other\blazor9-hotreload-repro\Blazor9\Components\Layout\NavMenu.razor [3l9Q3who4klEzCi6/bIotACKVzvbsb2IDh2man6tdBk=]
dotnet watch ⌚     Config: X:\dm\_other\blazor9-hotreload-repro\Blazor9\obj\Debug\net9.0\Blazor9.GeneratedMSBuildEditorConfig.editorconfig [1ZV456OLF1K2RHKnPAyjiV16b7x12KBEDUrjiY2kzNs=]
dotnet watch ⌚     Config: C:\Program Files\dotnet\sdk\9.0.202\Sdks\Microsoft.NET.Sdk\analyzers\build\config\analysislevel_9_default.globalconfig [ZRFi6tgci8t+nmaiOxtng/+Dca1YjDn+JWY1//eQ7FQ=]
dotnet watch ⌚ Handling file change event for static content X:\dm\_other\blazor9-hotreload-repro\Blazor9\wwwroot\app.css.
dotnet watch ⌚ [Blazor9 (net9.0)] Refreshing browser.
dotnet watch ⌚ Sending static file update request for asset 'app.css'.
dotnet watch 🔥 Hot Reload of static files succeeded.
dotnet watch ⌚ No C# changes to apply.
dotnet watch ⌚ Updating diagnostics in the browser.
dotnet watch 🔥 Hot reload change handled in 1ms.

@tmat
Copy link
Member

tmat commented Mar 26, 2025

Thanks for checking. I believe there is a bug in MacOS file system watcher that's causing this. Not sure if in the runtime or in the OS. Will need to investigate further.

Note the file system events dotnet-watch receives from the runtime:

dotnet watch ⌚ Updated  '/xxx/Blazor9/wwwroot/app.css~'.
dotnet watch ⌚ Added  '/xxx/Blazor9/wwwroot/app.css~'.
dotnet watch ⌚ Deleted '/xxx/Blazor9/wwwroot/app.css~'.

If we take this literally it means that a non-existent file was updated, then added and then deleted, which is obviously non-sensical.
dotnet-watch attempts to postprocess these to interpret them correctly. There is a bug in that logic.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants