Я разрабатываю приложение .NET Core на компьютере с Windows 10 (с обновлением Visual Studio 2015 3 + Microsoft .NET Core 1.0.1 VS 2015 Tooling Preview 2), которое должно быть опубликовано на компьютере с Ubuntu 16. Для этого мне нужно переместить исходный код на конечную машину и скомпилировать его там, чтобы запустить. например Я не могу скомпилировать код в Windows и запустить его в Linux. Вопрос: есть ли способ скомпилировать код на машине win и запустить его на linux?
Как скомпилировать приложение .NET Core для Linux на машине с Windows
Ответы (3)
Используя команду dotnet build, вы можете указать --runtime
флаг
-r | --runtime ‹RUNTIME_IDENTIFIER›
Целевая среда выполнения для сборки. Список идентификаторов среды выполнения (RID), которые вы можете использовать, см. На странице Каталог RID.
RID, представляющие конкретные операционные системы, обычно следуют этому шаблону [os].[version]-[arch]
Например, для создания проекта и его зависимостей для среды выполнения Ubuntu 16.04 используйте:
dotnet build --runtime ubuntu.16.04-x64
Can not find runtime target for framework '.NETCoreApp,Version=v1.0' compatible with one of the target runtimes: 'win10-x64, win81-x64, win8-x64, win7-x64'.
- person amiry jd; 08.01.2017
Для тех, кто сейчас видит, что это больше не работает, кажется, что после обновления от 10 ноября 2020 года вы должны указать файл проекта сейчас, поскольку ему больше не нравится использовать указанную среду выполнения в решении (.sln).
Здесь была поднята проблема по этому поводу (https://github.com/dotnet/sdk/issues/14281), но, очевидно, сразу решить эту проблему не удастся.
Итак, ранее, где это работало:
dotnet build --runtime ubuntu.xx.xx-x64
Сейчас ему нужно что-то вроде этого:
dotnet build ProjectName.csproj --runtime ubuntu.xx.xx-x64
--framework net5.0
- person Vinigas; 26.12.2020