ILMerge DLL: сборка не слилась правильно, все еще отображается в качестве внешней ссылки - PullRequest
35 голосов
/ 27 ноября 2009

В процессе сборки инструмента .NET C # я использовал ILMerge для объединения сборок в один исполняемый файл.

Недавно я добавил новую библиотеку классов, и теперь ILMerge не работает. Я вспомнил, чтобы сказать это слить в новую DLL!

Теперь он дает мне эту ошибку, которую я не совсем понимаю:

ILMerge.Merge: сборка DataObjects не был объединен в правильно. Это все еще перечислено как внешняя ссылка в мишени сборка.

Все ссылки на сборки, которые я сделал, использовали ссылки 'project', и в прошлом это не было ошибкой.

Может кто-нибудь объяснить мне эту ошибку или предложить обходной путь, пожалуйста?

Ответы [ 3 ]

37 голосов
/ 03 марта 2010

Мне пришлось использовать аргумент /closed. Согласно официальным документам :

Закрыто

Когда это установлено перед вызовом слияния, тогда «транзитивное закрытие» входные сборки вычисляются и добавляются к списку входных сборок. собрание считается частью транзитивное закрытие, если оно ссылаться, либо напрямую, либо косвенно, от одного из указанные входные сборки и имеет внешняя ссылка на один из входные сборки или один из сборки, на которые есть такая ссылка. Сложно, но это жизнь ...

5 голосов
/ 05 апреля 2016

При попытке опубликовать веб-приложение, объединяющее все выходные данные в одну сборку, я получил похожее сообщение об ошибке:

Произошла ошибка при объединении сборок: ILMerge.Merge: целевая сборка указывается как внешняя ссылка.

Это происходит, если объединяемое имя сборки совпадает с именем сборки веб-приложения в Properties > Application. Изменение имени выходной сборки должно исправить это.

0 голосов
/ 19 сентября 2018

Я получил эту ошибку, и она указала на ссылку Microsoft.Xrm.Sdk, которую я сливал в одну DLL. Проблема была исправлена, когда я установил другую ссылку, Microsoft.Xrm.Sdk.Deployment, чтобы объединить в dll. Забавно, что в отдельном проекте у меня было первое слияние ссылок, а второе dll развертывания не слилось, и оно не жаловалось вообще.

...