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.