Есть ли способ упаковать больше, чем one.NET сборка в dll?
Я хотел бы, чтобы мои компоненты/сборки были четко отделены от точки зрения исходного кода, но мне также нужно в некоторых обстоятельствах (вероятно, не имеет значения для расширения) упаковать их в ту же dll.
можно ли упаковать несколько сборок .NET в одну dll? Если да, то как?
Если возможно, как вы думаете, это хорошая идея? Почему?
любая помощь приветствуется!
2 ответов
проверить эту статью : объединение .NET-сборок с помощью ILMerge
Как вы знаете, традиционная связь объектный код больше не нужен в .Чистая. А .Чистая программа обычно состоят из нескольких частей. Типовое значение Приложение .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
ILMerge
можно объединить две сборки в одну.
посмотреть здесь для информации (примеры для кросс-языка, но он будет работать с любыми инструментами, построенными сборками).
очевидно, что любые зависимости от отдельных сборок (до слияния) должны быть обновлены/перенаправлены.