Ненужные библиотеки в консольном приложении dotnet core?

Я просто пытаюсь построить пример dotnet-core 2.0 консольное приложение, которое должно быть опубликовано в виде исполняемого файла. Это требует от меня, чтобы добавить RuntimeIdentifier в csproj файл. После публикации моего примера приложения для win-x64Я получаю выходной каталог, который содержит около 200 DLL и мой исполняемый файл. Я чувствую, что это слишком много - только напечатать простую Hello World на консоль.

Есть ли способ уменьшить количество DLL? В этом старом (и теперь наверняка устаревшем документе) названном сокращении зависимостей пакетов для библиотек предлагается ручной подход.

Есть ли способ уменьшить зависимости в dotnet-core 2.0? Или это не проблема, и мне все равно?

Просто для полноты, вот мой пример определения проекта:

<Project Sdk="Microsoft.NET.Sdk">
     <PropertyGroup>
       <OutputType>Exe</OutputType>
       <TargetFramework>netcoreapp2.0</TargetFramework>
       <RuntimeIdentifiers>Portable;win-x64</RuntimeIdentifiers>   
     </PropertyGroup>
</Project>

1 ответ

Решение

Все зависимости полезны определенным образом (некоторые классы каждого используются, чтобы заставить ваше приложение работать), поэтому, когда вы говорите "ненужные", вы ошибаетесь.

Пока что нет лучшего инструмента, чем недавно анонсированный IL Linker, чтобы уменьшить размер развертывания,

https://github.com/dotnet/announcements/issues/30

Другие вопросы по тегам