如何合并 WPF 应用程序的程序集?

gre*_*man 5 c# wpf ilmerge

我尝试在基于 WPF 的项目(VS2010、Net4.0)上使用 ILMerge,但无法运行合并的可执行文件。所以我创建了两个非常简单的项目

  • 只是一个打印出hello world的控制台应用程序
  • wpf 应用程序,显示带有 hello world 标签的窗口

编译每个项目后,我得到一个可执行文件(所以合并,并没有真正合并任何东西,它只是为了测试)。每个可执行文件当然都有效。

然后我以这种方式“合并”每个可执行文件:

"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
Run Code Online (Sandbox Code Playgroud)

(我只是为了可读性而调用了多行)。好的,现在控制台应用程序合并并像以前一样运行,wpf 应用程序合并没有任何错误,但我无法运行它。我的意思是,我打字

Merged.exe
Run Code Online (Sandbox Code Playgroud)

任务栏闪烁,但什么也没有显示——没有窗口,没有错误,什么也没有。

那么我应该如何合并 WPF 应用程序?

sar*_*ret 4

据我所知(并且经历过),ilmerge 无法与嵌入了 xaml 资源的 WPF 程序集正常工作。

请参阅此问题以获取一些可能的解决方案/替代方案