Как встроить модули .NET в самостоятельную сборку? - PullRequest
0 голосов
/ 15 октября 2010

Я пытаюсь автоматизировать генерацию сборки из сетевых модулей.Я попытался использовать инструмент "al.exe" с этой строкой: al module1.netmodule module2.netmodule / target: library /out:assembly.dll.Моя проблема в том, что моя сборка не встраивает мои сетевые модули, а только ссылается на них: - если я открываю свою сборку с помощью инструмента «ildasm.exe», я вижу только манифест - если я импортирую свою сборку в новый проект Visual Studio, онне работает, если я не скопирую два сетевых модуля рядом со сборкой

Я попробовал инструмент "ILMerge", на моем простом примере он работает нормально: инструмент "ildasm.exe" показывает правильные классы и сборкуможет быть использован в проекте Visual Studio.Но есть ограничения (WPF), с которыми я боюсь столкнуться в моем проекте.

Мои вопросы: - Есть ли способ создать независимую сборку из сетевых модулей, используя «al.exe» или «csc.exe»??Как встраивать сетевые модули в сборку, а не только ссылаться на них?- Должен ли я использовать "ILMerge.exe"?- Что такое реальное использование "al.exe"?Не может "csc.exe" сделать то же самое, используя параметр "/ addmodule"?

1 Ответ

0 голосов
/ 21 июня 2011

Вы пробовали Link.exe - он сделает эту работу. Вы можете найти более подробную информацию о компоновщике здесь:

http://msdn.microsoft.com/en-us/library/y0zzbyt4(v=vs.71).aspx

Инструмент «Ссылка» устанавливается как часть Visual Studio. На моей машине Link.exe установлен по адресу: C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ VC \ bin \ amd64

Структура команд, которая работает для меня, показана ниже:

LINK             = "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\Link.exe"
LIBPATH1         = "$(PROGRAMFILES)\Microsoft Visual Studio 8\SDK\v2.0\lib"
LIBPATH2         = "$(PROGRAMFILES)\Microsoft SDKs\Windows\v7.0A\Lib"

$(LINK) /LIBPATH:$(LIBPATH1) /LIBPATH:$(LIBPATH2) /DLL /nologo /LTCG /out:$(DLL_NAME).dll $(EXT_MODULE1) $(EXT_MODULE2) $(EXT_MODULE3) ... 
...