Создание приложений .net-core с использованием сторонних библиотек - PullRequest
1 голос
/ 29 мая 2019

У меня есть консольное приложение dot net core, которое я хочу упаковать в виде .exe и разослать коллегам.

Поскольку все пользователи продукта работают на Windows 10, я создаю проект с использованием

dotnet build -r win10-x64

Это замечательно тем, что дает небольшой пакет развертывания.Теперь, когда я представил сторонние библиотеки (через nuget), у меня возникла проблема в том, что они не включены в выходные данные сборки.

Есть ли способ собрать базовый проект dot net в виде .exe, включаяСторонние библиотеки, но не все библиотеки dot net?

Обнаружено решение

Следуя указаниям @ turobo снизу, я получил следующее:

dotnet publish  -r win10-x64  -c Release --self-contained false

1 Ответ

0 голосов
/ 29 мая 2019

Вы почти у цели. Вам необходимо использовать команду "dotnet publish" для создания пакета dotnet. В ядре dotnet команда build не предназначена для создания распространяемого пакета.

Выдержка из ссылка на сборку dotnet :

Если проект имеет сторонние зависимости, такие как библиотеки из NuGet, они разрешаются из кэша NuGet и недоступны с построенный выход проекта. Имея это в виду, продукт дотнет build не готов к передаче на другую машину для запуска. Это в отличие от поведения .NET Framework, в котором создание исполняемый проект (приложение) производит вывод, который можно запустить на любая машина, на которой установлен .NET Framework. Иметь подобное Для работы с .NET Core необходимо использовать команду dotnet publish . Для получения дополнительной информации см. .NET Core Application Deployment .

Что вы ищете, так это зависимые от платформы исполняемые файлы (FDE). Выдержка из здесь :

Платформенно-зависимые исполняемые файлы. Создает исполняемый файл, который запускается на целевая платформа. Аналогично FDD, исполняемым файлам, зависящим от инфраструктуры (FDE) зависят от платформы и не являются автономными. Эти развертывания по-прежнему зависят от наличия общесистемной версии .NET Core для запуска. В отличие от SCD, ваше приложение содержит только ваш код и любые сторонние зависимости, которые находятся за пределами .NET Core библиотеки. FDE создают исполняемый файл, который запускается на цели платформы.

Это должно работать:

dotnet publish -r win10-x64
...