Кросс-компиляция с Visual Studio 2019 - PullRequest
1 голос
/ 17 октября 2019

Я использую VS2019 под Windows 10, и я пытаюсь выяснить, как компилировать для платформ не-Windows. Мне известно, что только некоторые языки поддерживают кросс-компиляцию (C # является одним из них). Поэтому я решил начать с одного из собственных примеров Microsoft (Консольное приложение для .NET Core). При запросе VS2019 о создании проекта консоли, он показывает мне различные значки изображений, которые предполагают, что он будет компоноваться для Windows, Linux и macOS - но независимо от того, что я делаю, я могу только заставить его создать цель Windows.

После небольшого исследования я понял, что мне нужно добавить эту строку в мой файл проекта C #: -

<RuntimeIdentifiers>win10-x64;osx.10.11-x64;ubuntu.16.10-x64</RuntimeIdentifiers>

, но даже после добавления этой строки (и повторной загрузки / повторной сборки проекта) он категорически отказывается строить что-либо, кроме цели Windows. В CodeGuru один из разработчиков попробовал это для меня (под VS2017) и смог заставить его работать - но я пробовал это в VS2019 и VS2015, и я не могу заставить его работать ни в одном из них. Есть идеи, что я могу делать неправильно ??

[Редактировать ...] Спасибо, Магнетрон - если я нажму Build-> Publish , я вижу совершенно другой диалог, чем тот, который вывидение (и то же самое в VS2015 и VS2019): -

My Publish dialog

Даже если я нажимаю кнопки Далее или Готово Я никогда не вижу опцию Создать профиль: (

Ответы [ 2 ]

1 голос
/ 17 октября 2019

Перейдите в «Сборка»> «Опубликовать», выберите «Папка» и нажмите «Создать профиль»

enter image description here

Затем нажмите «Изменить» и измените значение Deployment Mode на Self-contained. Наконец, вы можете указать целевую ОС в Target Runtime

enter image description here enter image description here enter image description here

Вы можете создать несколько профилей для каждой ОС и публиковать каждый по отдельности по мере необходимости.

Редактировать:

Диалог публикации публикации предназначен для приложения .Net Framework Console, а не для .NetОсновной один. Платформа .Net предназначена только для Windows. Вы должны создать свой проект как .Net Core

enter image description here

0 голосов
/ 18 октября 2019

Woohoo !! Я только что запустил установщик VS2019, чтобы напомнить себе, как удалить его (готовится к завтрашнему дню), и он сказал мне, что уже есть 16.3.5. 16.3.4 был установлен только несколько часов назад, но, черт возьми, я подумал, что с таким же успехом могу попробовать более новую версию - и теперь она работает !!!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...