0

ILMerge をポスト ビルド タスクに追加してコマンドラインを実行した後、マージされたプログラム MyMerged.exe を正常に取得できました。

しかし、実行すると例外が発生します

未処理の例外: System.TypeLoadException: アセンブリ 'mymerged、Version=1.0.0.0、Culture=neutral、PublicKeyToken=null' から型 'Microsoft.Build.Utilities.TaskItem' を読み込めませんでした' メソッド '.ctor' に実装がないため ( RVAなし)。MyProgram.Program.Main (文字列 [] args) で

これは、コンストラクターがない状況を処理しない ILMerge のバグですか、それともコンストラクターがないための TaskItem のバグですか。

ありがとう

4

1 に答える 1

2

Microsoft.Build.Utilities.dllILMergeコマンドラインに含めて、アセンブリにマージされて検出されるようにします 。

重複するタイプを定義し、/allowDupコマンドラインスイッチを使用する場合、ILMergeは重複するタイプの名前を変更します。これにより、特にリフレクションが使用されている場合、実行時に「タイプを読み込めませんでした...」エラーや予期しない動作が発生する可能性があります。

于 2011-12-17T12:33:47.000 に答える