I develop a Blazor Server app on Windows but deploy it to Linux servers (mostly for cost reasons).
Quite often everything works locally but fails on Linux. In many cases it turns out to be things like case-sensitive paths or filesystem differences.
I'm curious how others handle this workflow.
Do you also develop on Windows and deploy to Linux? What kinds of issues did you encounter?
Have you tried debugging it locally in a WSL instance?
Why not run the build in WSL?
To get runtime case-sensitivity problems with filenames I guess you must be doing something like having resource files as part of your project and then loading them from disk at runtime, but the code that loads them is being told the slightly wrong filename. Depending on why you need to load those files, there's not much you can do about that except stop coding the wrong filenames!
There are things that can help with filesystem differences though, if you're not using them already look under the System.IO namespace
Path.Combine will combine path segments using the native directory separator either `/` or `\`.
Path.GetTempFileName will create a temporary file on disk so you don't need to know if that's `/tmp` or `C:\whereverwindowsputsit\`
Mostly everything just works when coding on Windows and deploying to Linux, I think it is only the filesystem differences that ever cause problems and even then it's down to coding mistakes.