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 クラス) で System.Compiler.Ir2md.VisitClass(Class クラス) で.Compiler.Ir2md.VisitModule (モジュール モジュール) System.Compiler.Ir2md.SetupMetadataWriter (文字列 debugSymbolsLocation) で System.Compiler.Ir2md.WritePE (モジュール モジュール、文字列 debugSymbolsLocation、BinaryWriter ライター) で System.Compiler.Writer.WritePE (文字列) location、Boolean writeDebugSymbols、Module module、Boolean delaySign、String keyFileName、String keyName) の System.Compiler.Writer.WritePE(CompilerParameters compilerParameters, Module module) at ILMerging.ILMerge.
この例外を読んでみると、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
しかし、それでも同じ例外が発生します。誰かに何か提案があれば、大歓迎です。