Как заставить библиотеку DLL быть построены с помощью EXE, так что есть только один файл? - PullRequest
1 голос
/ 11 января 2011

У меня есть простое приложение на C #.Я хотел бы, чтобы DLL была "внутри" EXE-файла.как мне это сделать?

Ответы [ 2 ]

5 голосов
/ 11 января 2011

ILMerge делает именно то, что вы ищете


страница немного вводит в заблуждение, ILMerge работает на сборках V3 и V4 в соответствии с реальной веб-страницей

ILMerge должен нормально работать с более новые версии .NET. Просто используйте опция: / targetplatform: v4 ,. За версия 3.5, вероятно, вам не нужна установить целевую платформу, но вы может понадобиться добавить фреймворк v3.5 каталог как параметр / lib, так что сборки оттуда можно найти. (Если они не в GAC, в котором если они все равно будут найдены.) Для запуска ILMerge во время выполнения v4.0, используйте это файл конфигурации.


Чтобы ответить, как вы используете его из своего вопроса в другом ответе

Использование: ilmerge [/ lib: directory] * [/ log [: имя файла]] [/ keyfile: имя файла [/ DelaySign]] [/ internalize [: имя файла]] [/ t [arget] : (библиотека | exe | winexe)] [/ закрыто] [/ ndebug] [/ ver: версия] [/ copyattrs [/ allowMultiple]] [/ xmldocs] [/ attr: имя файла] [/ ta rgetplatform: [,] | / v1 | /v1.1 | / v2 | / V4] [/ UseFullPublicKeyForReferences] [/ wildcards] [/ zeroPe Kind] [/ allowDup: type] * [/ union] [/ align: n] / Из: имя файла [...]

Так что ilmerge /out:Combined.exe mainFile.exe otherDll.dll для вашего случая, так как большинство значений по умолчанию должно быть в порядке

2 голосов
/ 11 января 2011

ILMerge может сделать это для сборок .NET - хотя у него есть некоторые ограничения для определенных типов сборок (например, сборок WPF).

Вы также можете использовать сборка в качестве ресурса и загрузка ее по требованию , либо использование одного из множества коммерческих обфускаторов, поддерживающих объединение сборок.Многие из сторонних опций поддерживают более сложное слияние и / или встраивание зависимостей.Хорошим примером этого является SmartAssembly , который поддерживает оба варианта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...