Как Уменьшить Размер Приложения C#, Независимого От Среды?

В этой статье я поделюсь своим опытом, как уменьшить размер ассемблерно-независимого приложения C# в 2–4 раза.

Внимание: Сжатие содержимого программы доступно только для самостоятельные публикации .

А также все действия происходят в Visual Studio Preview 2019.



Если вы здесь для быстрого решения, то вот что вам нужно сделать

В .

csproject добавьте следующие строки: Опасный режим: удаляет неиспользуемые классы и методы.

Существует риск того, что приложение перестанет работать корректно, поэтому после публикации требуется тестирование всех функций приложения.

  
  
  
   

<PublishSingleFile>true</PublishSingleFile> <SelfContained>true</SelfContained> <RuntimeIdentifier>win-x64</RuntimeIdentifier> <PublishTrimmed>true</PublishTrimmed> <TrimMode>Link</TrimMode>

Более безопасный режим: удаляет только неиспользуемые сборки.



<PublishSingleFile>true</PublishSingleFile> <SelfContained>true</SelfContained> <RuntimeIdentifier>win-x64</RuntimeIdentifier> <PublishTrimmed>true</PublishTrimmed> <TrimMode>CopyUsed</TrimMode>

Затем щелкните проект правой кнопкой мыши → Опубликовать → Папка → Готово → Показать все настройки.

Установите следующие настройки:

  • Режим развертывания: автономный
  • Т arget Время выполнения: win-x64 или ваша версия.

    (Должно соответствовать строке Идентификатор времени выполнения)

Расширять Параметры публикации файла и установите флажки: Создать один файл И Обрезать неиспользуемые сборки .

Нажмите кнопку Публиковать .






Все то же самое, только с командой

Опасный режим:

dotnet publish -c Release -r win10-x64 -p:PublishTrimmed=True -p:TrimMode=Link -p:PublishSingleFile=true --self-contained true

Более безопасный режим:

dotnet publish -c Release -r win10-x64 -p:PublishTrimmed=True -p:TrimMode=CopyUsed -p:PublishSingleFile=true --self-contained true






Более подробная информация о том, что происходит за настройками выше

Первые три настройки имеют понятное название и должны совпадать с теми, которые вы используете при публикации через Визуальная Студия .

Команда ПубликацияОбрезанный активирует обрезку сборки.

Команда Режим обрезки выбирает метод обрезки сборки.

Именно здесь происходит вся магия уменьшения размера конечного файла.

Всего есть 2 режима: КопироватьИспользовано (обрезка на уровне сборки) и Связь (Обрезка на уровне элемента).

Обрезка на уровне сборки: просто удаляются неиспользуемые сборки.

То есть алгоритм просто перебирает все файлы программы, составляет список сборок, а затем удаляет из финальной сборки все файлы, которые не используются.

Этот метод помог мне уменьшить размер программы с 300 МБ до 96 МБ.

При архивировании ZIP этот файл стал размером 30 МБ.

Обрезка на уровне элементов — экспериментальный режим.

Алгоритм анализирует ваш код и удаляет все ненужные классы, методы и т. д. Из-за того, что алгоритм попадает в код, высок риск того, что приложение перестанет работать корректно, поэтому после его завершения требуется тщательное тестирование всех функций приложения.

публикация.

В моем случае этот режим уменьшил размер программы с 300МБ до 86МБ, но приложение перестало запускаться и не подавало признаков жизни.

К сожалению, отладить тоже не удалось.

Подробнее о тестах вы можете прочитать в этой статье.

Официальная документация от Microsoft Теги: #программы #C++ #.

NET #уменьшение #Размер #Независимая среда #Уменьшение размера #Уменьшение размера программы

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.