ILMerge или ILRepack добавить ссылку на сборку в dll - PullRequest
0 голосов
/ 08 октября 2019

Я создаю пользовательский пакет, используя nuspec, где я указываю зависимость. Я также объединяю несколько dll в одну dll.

Мне нужно сослаться на внешнюю dll, чтобы объединенная dll не включала внешние dll.

Я выполнил следующую команду:

ILMerge.exe /out:C:\Temp\lib\netstandard2.0\ProjectA.dll "ProjectC.dll" "ProjectD.dll"

ProjectC.dll зависит от внешнего пакета ProjectZ.dll, мне нужно добавить ProjectZ.dll в качестве внешней зависимости и не включать в ProjectA.dll.

Запуск команды безProjectZ.dll в аргументах я получаю сообщение об ошибке:

An exception occurred during merging:
Unresolved assembly reference not allowed: ProjectZ.
   at System.Compiler.Ir2md.GetAssemblyRefIndex(AssemblyNode assembly)
   at System.Compiler.Ir2md.GetTypeRefIndex(TypeNode type)
   at System.Compiler.Ir2md.GetTypeDefOrRefOrSpecEncoded(TypeNode type)
   at System.Compiler.Ir2md.VisitInterface(Interface Interface)
   at System.Compiler.Ir2md.Visit(Node node)
   at System.Compiler.Ir2md.VisitModule(Module module)
   at System.Compiler.Ir2md.SetupMetadataWriter(String debugSymbolsLocation)
   at System.Compiler.Ir2md.WritePE(Module module, String debugSymbolsLocation, BinaryWriter writer)
   at System.Compiler.Writer.WritePE(String location, Boolean writeDebugSymbols, Module module, Boolean delaySign, String keyFileName, String keyName)
   at System.Compiler.Writer.WritePE(CompilerParameters compilerParameters, Module module)
   at System.Compiler.Module.WriteModule(String location, CompilerParameters options)
   at ILMerging.ILMerge.Merge()
   at ILMerging.ILMerge.Main(String[] args)

Пример Moq.dll имеет ссылку на сборку для Castle.Core:

enter image description here Как можноя достигну этого?

...