Необходимость объединения библиотек DLL и создания единой сборки

Я пытаюсь развернуть приложение winforms. В настоящее время я намерен упаковать DLL и исполняемый файл в один исполняемый файл размером около 12 МБ (сжатый). Является ли это стандартной процедурой? Есть ли какие-то недостатки для этого подхода?


person techno    schedule 23.06.2012    source источник


Ответы (2)


Microsoft предоставляет для этого инструмент под названием ILMerge. Иметь ввиду:

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

  • Это не работает для WPF, поэтому может ограничить ваш путь обновления с winforms.

  • Есть лучшие подходы (задокументированные по ссылке выше) для .NET 4.5.

Кроме того, кто-то создал для него GUI.

person Chris Shain    schedule 23.06.2012
comment
Я знаю о ILMERGE. Это стандартная рекомендуемая процедура? - person techno; 23.06.2012
comment
@techno да, это довольно стандартно, хотя в будущем это может измениться в пользу альтернативного подхода, о котором я упоминал. - person Chris Shain; 23.06.2012

Вы можете найти несколько официальных ссылок и довольно хороший список плюсов и минусов в конце этой ветки, где оригинальный автор, задавший аналогичный вопрос, резюмировал отзывы и то, что он узнал:

http://www.pcreview.co.uk/forums/single-multiple-assemblies-big-apps-and-code-reuse-t2659572.html

Короче говоря, основными недостатками являются сложность обслуживания (развертывание новых версий только некоторых функций), потенциальное сокращение времени запуска (весь код загружается заранее) и больший объем памяти, даже если некоторые загруженные функции могут не потребоваться. Потенциальные преимущества, которые я вижу, заключаются в более простом развертывании, потенциально меньших накладных расходах на загрузку сборок по запросу и, возможно, лучшем запутывании кода (с помощью инструментов), если это то, чего вы пытаетесь достичь.

Я предполагаю, что у вас есть какие-то причины, чтобы хотеть это сделать. FWIW, я лично думаю, что это плохая идея.

person Christopher Crooker    schedule 23.06.2012
comment
«сокращение времени запуска» уменьшит ли слияние время запуска? - person techno; 23.06.2012