WPFベースのプロジェクト(VS2010、Net4.0)でILMergeを使用しようとしましたが、マージされた実行可能ファイルを実行できませんでした。だから私は2つの非常に単純なプロジェクトを作成しました
- helloworldを出力する単なるコンソールアプリケーション
- helloworldラベルの付いたウィンドウを表示するwpfアプリケーション
各プロジェクトをコンパイルした後、単一の実行可能ファイルを取得します(したがって、マージすると、実際には何もマージされません。テスト用です)。もちろん、各実行可能ファイルは機能します。
次に、各実行可能ファイルを次のように「マージ」します。
"C:\Program Files\Microsoft\ILMerge\ilmerge"
/targetplatform:v4,c:\Windows\Microsoft.NET\Framework\v4.0.30319
/lib:c:\Windows\Microsoft.NET\Framework\v4.0.30319\wpf
/out:Merged.exe MyApplication.exe
(私はSOの読みやすさのためだけに複数行で呼び出しました)。これで、コンソールアプリケーションがマージされ、以前と同じように正常に実行されます。wpfアプリケーションはエラーなしでマージされますが、実行できません。つまり、私はタイプします
Merged.exe
タスクバーは点滅しますが、何も表示されません。ウィンドウもエラーも何も表示されません。
では、WPFアプリをどのようにマージする必要がありますか?