2011-08-22 8 views
0

を与えているマージされ、私はsucessfully ILMergeとMSBuildの - EXEは、私のポストビルドタスクにILMergeを追加し、コマンドラインを働いた後、ランタイムエラーに

MyMerged.exe

マージされたプログラムを取得するしかし、私はそれを実行したとき、私は例外を取得

未処理の例外:System.TypeLoadException: アセンブリ 'mymerged、Version = 1.0.0.0、Culture = neutral、PublicKeyToken = null'から 'Microsoft.Build.Utilities.TaskItem'をロードできませんでした。 'には実装がありません(RVAはありません)。 MyProgram.Program.Mainで (文字列[] args)を

これはILMergeは、コンストラクタ、または1つを持っていないためたTaskItemにバグが存在しない状況を処理していないのバグです。それはあなたの組み立て、見つかっでマージされますされるように

おかげ

+0

より良い方法を見つけました.... http://blogs.msdn.com/b/microsoft_press/archive/2010/02/03/jeffrey-richter-excerpt-2-from-clr-via-c- third-edition.aspx – jradxl

答えて

2

はILMergeコマンドラインでMicrosoft.Build.Utilities.dllを含めます。

重複したタイプが定義されていて、コマンドラインスイッチ/allowDupを使用すると、ILMergeは重複したタイプの名前を変更し、実行時に "反映できません..."というエラーと予期しない動作中古。

+0

私は同じ問題を抱えていました。あなたの約/ allowDupは本当に役に立ちました、ありがとう!この部分の代わりに "/ allowDup MyMainDLL.dll .dll"が " .dll" – gisek

関連する問題