Сборка консольного приложения под Linux в NET7
Мне нужно собрать консольное приложение C# для Linux, но в свойствах проекта, в графе Целевая ОС
есть разные платформы, включая Mac, iOS и т.д., но только не Linux с его дистрибутивами. Гуглил, пробовал менять .csproj
вручную, сейчас он выглядит так:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net7.0</TargetFramework>
<RootNamespace>Hello_World</RootNamespace>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<RuntimeIdentifier>linux-x64</RuntimeIdentifier>
<IsPackable>false</IsPackable>
</PropertyGroup>
</Project>
Если убрать OutputType Exe
, то собирает DLL.
Команда dotnet publish -r linux-x64 -f net7.0
так же не дает нужного результата. В лучшем случае собирает без расширения исполняемого файла, что тоже не запустить на линуксе. SDK NET7 установлены, никаких пакетов, связанных с Linux в инсталлере не обнаружил, сам проект без внешних зависимостей - простейший Hello World из трех строк.
Источник: Stack Overflow на русском