我正在使用指定依赖项的 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 的引用程序集: