2010-06-08 85 views
2

我想合併兩個文件。其中之一是.NET3.5 WPF應用程序等是WPF notify icon dll構建單個文件應用程序

我用下面的命令:

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

但是當我啓動結果assebmly我的應用程序崩潰,此錯誤

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

爲什麼?我怎樣才能建立一個單一的文件應用程序?

+0

請注意,無法使用ILMerge合併WPF程序集(最高版本爲2.11.0502) – froeschli 2011-06-21 12:44:42

回答

1

只是一個猜測,但您可能需要合併其他參考。例如,也許你還將somethingelse.dll與EXE一起復制到項目的bin文件夾中,並忘記包含它?

你不應該需要從GAC合併.NET Framework程序集,雖然,除非有圍繞「複製本地」 TRUE/FALSE設置一個問題:

現在,你自動修改將 項目已將所有引用的 程序集合併入。標記爲「複製本地」的只有 程序集將合併爲 ,因此係統程序集和GAC 程序集默認情況下不會合並。

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

也許,只是調試它,嘗試在本地複製.NET Framework類到您的項目,並把它們合併還看是否可行。這可能有助於開始隔離錯誤。

+0

但是我必須複製哪些類? PresentationCore,WindowsBase等? – Neir0 2010-06-08 22:34:53

+0

這不是類,而是需要使用的程序集。我建議查看VS或對話框中的引用節點,並將所有引用設置爲Copy Local,然後在裝配的整個bin文件夾中使用MSIL。本文提供了有關如何管理程序集的一些指導:http://msdn.microsoft.com/zh-cn/library/wkze6zky(VS.80).aspx – 2010-06-09 03:32:18