ILMerge и Проект Ссылки - PullRequest
0 голосов
/ 20 июня 2010

У меня есть решение VS (.sln), которое имеет следующую структуру.

  • Проект A
  • Проект B (содержит ссылку на Проект A, а также ссылки на третьи сторонысборки, такие как NHibernate, StructureMap и т. д.)

Я хочу использовать ILMerge для накатывания сторонних сборок в ProjectB.dll.Однако я не хочу объединять ProjectA.

Я использовал процедуру, выделенную здесь .Это сработало для меня без проблем в отношении слияния сторонних сборок.Тем не менее, я все еще получаю эту ошибку при создании ProjectB:

Исключительная ситуация при объединении: неразрешенная ссылка на сборку не разрешена: ProjectA.

Я не указываю явно, что ProjectA будет объединен.Другими словами, я не говорю правду для этого проекта.Как заставить IlMerge игнорировать ProjectA?Кстати, ProjectA - это ссылка на проект, а не прямая ссылка на сборку.

Спасибо!

Ответы [ 2 ]

4 голосов
/ 16 сентября 2010

Используйте аргумент /lib для ILMerge, передавая каталог, содержащий ProjectA.dll.

В частности (при условии, что целевой платформой ProjectB является клиентский профиль .NET 4.0):

ILMerge.exe /out:MasterDll.dll
            /targetplatform:v4,"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client"
            /lib:ProjectA\bin\Release
            ProjectB\bin\Release\ProjectB.dll
            Libraries\NHibernate\NHibernate.dll
            Libraries\StructureMap\StructureMap.dll
            ...
0 голосов
/ 06 августа 2014

Для 4.0 просто используйте:

/ targetplatform: v4, "% ProgramFiles% \ Ссылочные сборки \ Microsoft \ Framework.NETFramework \ v4.0"

...