2

我正在尝试合并两个文件。其中之一是 .net3.5 wpf 应用程序,另一个是WPF 通知图标 dll

我使用以下命令:

IlMerge /target:winexe /out:PS.exe "PlayerSearcher.exe" "Hardcodet.Wpf.TaskbarNotification.dll"

但是当我启动结果程序集时,我的应用程序因此错误而崩溃

EventType:clr20r3 P1:ps.exe
P2:1.0.0.0 P3:4c0ee52f P4:presentationframework P5:3.0.0.0 P6:4938d608 P7:9a1 P8:46 P9:system.io.ioexception

为什么?以及如何构建单个文件应用程序?

4

1 回答 1

1

只是一个猜测,但您可能需要合并其他参考。例如,也许您也将 someelse.dll 与 EXE 一起复制到项目的 bin 文件夹中而忘记包含它?

不过,您不需要从 GAC 合并 .NET Framework 程序集,除非“复制本地”真/假设置存在问题:

现在,您修改的项目将自动合并所有引用的程序集。只有标记为“复制本地”的程序集将被合并,因此默认情况下不会合并系统程序集和 GAC 程序集。

-- http://blogs.msdn.com/b/jomo_fisher/archive/2006/03/05/544144.aspx

也许,只是为了调试它,尝试将 .NET Framework 类本地复制到您的项目中,并将它们也合并以查看是否有效。这可能有助于开始隔离错误。

于 2010-06-08T22:20:42.133 回答