Есть ли способ упаковать более одной сборки .NET в DLL? - PullRequest
6 голосов
/ 27 августа 2009

Я бы хотел, чтобы мои компоненты / сборки были четко отделены от точки зрения исходного кода, но мне также необходимо в некоторых обстоятельствах (возможно, не относящихся к расширению) упаковать их в одну и ту же DLL. Можно ли упаковать несколько сборок .NET в одну DLL?Если да, то как?

Если возможно, как вы думаете, это хорошая идея?Почему?

Любая помощь приветствуется!

Ответы [ 2 ]

9 голосов
/ 27 августа 2009

Ознакомьтесь с этой статьей: Объединение сборок .NET с использованием ILMerge


Как известно, традиционное связывание объектный код больше не нужен в .СЕТЬ. Программа .NET обычно состоят из нескольких частей. Типичный Приложение .NET состоит из исполняемая сборка, несколько сборок в каталоге программы, и несколько сборки в глобальной сборке кэш. Когда программа запускается, среда выполнения объединяет все эти части в программа. Ссылка во время компиляции нет дольше необходимо.

Но иногда, тем не менее, полезно объединить все части программы необходимо выполнить в одном сборка. Например, вы можете захотеть чтобы упростить развертывание вашего приложение путем объединения программы, все необходимые библиотеки и все ресурсы, в один файл .exe.

csc /target:library /out:ClassLibrary1.dll ClassLibrary1.cs
vbc /target:library /out:ClassLibrary2.dll ClassLibrary2.vb
vbc /target:winexe /out:Program.exe 
    /reference:ClassLibrary1.dll,ClassLibrary2.dll Program.vb

.

ilmerge /target:winexe /out:SelfContainedProgram.exe 
        Program.exe ClassLibrary1.dll ClassLibrary2.dll
6 голосов
/ 27 августа 2009

ILMerge может объединить две сборки в одну.

См. здесь для информации (примеры для кросс-языка, но он будет работать независимо от инструментов, собранных сборками).

Очевидно, что любые зависимости от отдельных сборок (предварительное объединение) необходимо будет обновить / перенаправить.

...