How to compile .NET Core app for Linux on a Windows machine
For anyone who's now seeing this not working anymore, it seems as of the update on the 10th of November 2020 you have to specify the project file now as it doesn't like using a specified runtime on a solution (.sln) anymore.
An issue about this was raised here (https://github.com/dotnet/sdk/issues/14281) but obviously that's not going to get resolved immediately.
So previously where this would work:
dotnet build --runtime ubuntu.xx.xx-x64
It wants something like this now:
dotnet build ProjectName.csproj --runtime ubuntu.xx.xx-x64
dotnet publish **path to your solution** --configuration Release --framework netcoreapp3.0 --output .**output path** --self-contained false --runtime linux-x64 --verbosity quiet
Option 1: Command line
dotnet build ProjectFile.csproj --runtime linux-x64
Works on Linux and Windows and Mac.
Option 2: Visual Studio
You can also "publish" your app in Visual Studio if you prefer. Choose "File System" publish method and set this setting:
Using dotnet build command, you may specify --runtime
flag
-r|--runtime < RUNTIME_IDENTIFIER >
Target runtime to build for. For a list of Runtime Identifiers (RIDs) you can use, see the RID catalog.
RIDs that represent concrete operating systems usually follow this pattern [os].[version]-[arch]
Fo example, to build a project and its dependencies for Ubuntu 16.04 runtime use:
dotnet build --runtime ubuntu.16.04-x64