Monday, July 12, 2010

IL Merge

ILMerge – это утилита от Microsoft Research, которая умеет объединять несколько .Net сборок в одну. Зачем это надо? Например, для того чтобы нельзя было вывести из строя приложение удалив одну из его библиотек. Или для того чтобы упростить жизнь пользователю, предоставив ему всего один исполняемый файл вместо папки с кучей библиотек.

Давайте рассмотрим небольшой пример. У меня есть приложение, которое после сборки будет состоять из одного исполняемого файла и двух библиотек.

imageimage Давайте посмотрим как с помощью ILMerge можно свернуть эти три сборки в одну. Вообще ILMerge – это утилита командной строки. Поэтому достаточно вызвать ее с нужными параметрами и дело будет сделано. Однако лично мне такой вариант использования не нравится. Я предпочитаю написать custom action для MSBuild и встроить его в процесс сборки моего приложения.

Для того чтобы использовать API ILMerge в своем приложении достаточно добавить в нем ссылку на ILMerge.exe.

image

Я не буду вдаваться в детали создания custom action для MSBuild, а приведу только код, необходимый для объединения сборок:

После объединения я получил один исполняемый файл, который включает всю информацию из все трех исходных сборок.

image image

Как видите все достаточно просто. Дополнительную информацию можно найти в .doc файле поставляемом вместе с ILMerge.

Ссылки:

  1. Download ILMerge
  2. ILMerge-GUI at Codeplex
  3. How to merge your referenced assemblies into the output assembly for improved usability
  4. Leveraging ILMerge to simplify deployment and your users experience

No comments:

Post a Comment