Публикация инструмента DotNetCore для нескольких платформ - PullRequest
0 голосов
/ 15 ноября 2018

Я написал довольно простой инструмент командной строки в Dotnet-core. Он выполняет некоторое fileIO и вызывает некоторые веб-API. Я хочу опубликовать его в двоичном виде для нескольких платформ. Я думал, что это может быть пакет NuGet. Но я застрял в создании публикуемых двоичных файлов.

Когда я запускаю "dotnet publish" выходная папка содержит только библиотеки DLL.

Когда я запускаю "dotnet publish --runtime win7-x64", например выходная папка содержит исполняемый файл. Тем не менее, он также содержит около 67 МБ библиотек DLL и других двоичных файлов из сборок / пространств имен. Я совершенно уверен, что не использую их. (Может я их косвенно использую?)

Я могу поменять 'win7-x64' на другие платформы, такие как Ubuntu или OSX. Команды работают, и сгенерированный вывод выполняется правильно на этих платформах. Я просто не так сильно хочу отправить столько мегабайт для инструмента, который может содержать всего 300 строк кода. Такое ощущение, что я неправильно использую фреймворк.

Как опубликовать мой инструмент в бинарном формате и в компактном виде?

Заранее спасибо! -Бен

1 Ответ

0 голосов
/ 15 ноября 2018

Вы выбрали автономный вариант.В этом случае 67 МБ содержит всю базовую платформу .NET. Существует также возможность развертывания приложения без всей .NET Framework.Но на целевой системе должно быть установлено ядро ​​.NET.Я думаю, что они собираются добавить еще один вариант для развертывания в один исполняемый файл, который потрясен деревом, и его размер будет меньше в .NET Core 3.

https://docs.microsoft.com/en-us/dotnet/core/deploying/

Если ваши инструментыдля разработчиков вы можете опубликовать его как глобальный инструмент .NET: https://docs.microsoft.com/en-us/dotnet/core/tools/global-tools-how-to-create

...