我正在尝试使用 ILMerge.exe (2.12.0803) 为 Windows Phone 8 合并一些 .net 程序集。就他们自己而言,所有组件都可以正常工作。我可以成功合并不包含对Windows.Networking命名空间的引用的程序集,如下所示:
.\ILMerge.exe /lib:"%ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0" /out:.\WP8\%1\MathToolbox.dll .\%1\MathBase.dll .\%1\PolyFunctions.dll
一旦我尝试包含一个使用 Windows.Networking 命名空间的 DLL,如下所示:
.\ILMerge.exe /lib:"%ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0" /out:.\WP8\%1\MathToolbox.dll .\%1\MathBase.dll .\%1\PolyFunctions.dll .\%1\RemoteTools.dll
我收到以下异常:
合并期间发生异常:不允许未解析的程序集引用:Windows。在 System.Compiler.Ir2md.GetAssemblyRefIndex(AssemblyNode 程序集) 在 System.Compiler.Ir2md.GetTypeRefIndex(TypeNode 类型) 在 System.Compiler.Ir2md.VisitReferencedType(TypeNode 类型) 在 System.Compiler.Ir2md.VisitClass(Class Class) 在 System System.Compiler.Ir2md.SetupMetadataWriter(String debugSymbolsLocation) 在 System.Compiler.Ir2md.WritePE(Module module, String debugSymbolsLocation, BinaryWriter writer) 在 System.Compiler.Writer.WritePE(String在 ILMerging.ILMerge 的 System.Compiler.Writer.WritePE(CompilerParameters compilerParameters, Module module) 中的位置、布尔 writeDebugSymbols、模块模块、布尔 delayS ign、String keyFileName、String keyName)。
阅读此异常提示 ILMerge 无法找到 Windows.Networking 程序集。我尝试向 ILMERGE 添加各种不同的标志,包括:
.\ILMerge.exe /lib:"%ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0" /targetplatform:v4,"%ProgramFiles(x86)%\Reference Assemblies\Microsoft\Framework\Silverlight \v4.0\Profile\WindowsPhone71" /out:.\WP8\%1\MathToolbox.dll .\%1\MathBase.dll .\%1\PolyFunctions.dll .\%1\RemoteTools.dll
但仍然得到同样的例外。如果有人有任何建议,将不胜感激。