Зависимости от блока.NET

Возможно, я пропускаю что-то очевидное здесь, но...

Я разработал допускающий повторное использование универсальный проект библиотеки классов C#, говорят, что (A.dll), который ссылки 3 других блока говорят (B.dll, C.dll и D.dll)

Однако, если я хочу снова использовать свой A.dll компонента в другом проекте, я все еще должен включать ссылки на B.dll, C.dll и D.dll.

Есть ли какой-либо способ, которым можно настроить A.dll для встраивания всех его зависимостей в A.dll, таким образом, я не должен включать другие 3 блока?

Удачи

6
задан 15 February 2010 в 10:44
поделиться

2 ответа

Можно объединить сборки с помощью инструмента ILMerge :

C:\Program Files\Microsoft\ILMerge\ILMerge.exe /target:library /out:abcd.dll a.dll b.dll c.dll d.dll"

Это объединит библиотеки dll a , b , c и d в abcd.dll . Он также объединит символы отладки, но не XML-документацию.

Также вам нужно будет ссылаться на саму dll в новых проектах, а не на соответствующие проекты. Исключением является объединение библиотек в исполняемый файл, в этом случае вы можете ссылаться на соответствующие библиотеки / проекты, потому что они будут загружены вместе с исполняемым файлом.

В Mono Project также есть инструмент для этого под названием mkbundle.

Также доступен ILRepack , который стремится быть совместимым с ILMerge, но является FLOSS.

6
ответ дан 17 December 2019 в 02:28
поделиться

Это похоже на статическое связывание библиотек DLL, которое отлично работает с собственным C ++. Насколько я знаю, вы не можете статически связывать сборки в коде .NET, поэтому вам нужно включить все библиотеки DLL.

0
ответ дан 17 December 2019 в 02:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: