天天看點

wpf dll和exe合并成一個新的exe

微軟有一個工具叫ILMerge可以合并dll exe等,但是對于wpf的應用程式而言這個工具就不好用了。我的這方法也是從國外一個部落格上找來的。僅供大家參考。

第一步:把下面的代碼寫到你的項目檔案的标準的Microsoft.CSharp下面,也就是.csproj的檔案裡

  第二步:把你需要引用的dll複制到你目前項目的Resources檔案夾下面,并把他們作為嵌入式資源(dll的屬性裡有此設定),為了避免檔案名沖突,把這些dll的字尾加上 resources (System.Windows.Interactivity.resources.dll)

第三步:通常WPF應用程式包含一個xaml檔案,它充當一個神奇的入口點到應用程式和啟動的第一個視窗。然而,xaml其實沒那麼神奇。如果你仔細看一下這些檔案夾在您的項目檔案夾obj,你會發現一個appg.cs檔案,這是來自你的xaml。它包含一個正常的“靜态空隙主要“c#入口點是以為了得到在WPF之前,所有您需要做的就是定義自己的入口點進入一個新類,做你需要,然後調用正常WPF入口點。添加一個類Program.cs并把它設定成程式的入口點。

第四步:建構Program.cs的代碼

  簡單的四步,如果引用的dll中的版本有低于目前項目版本的話會有錯誤,我是直接把這個dll拿出來和合并後的exe放在一起了。或者把目前引用的dll版本統一掉。出現此問題最多的時候是引用的第三方的dll。

原文位址:http://www.digitallycreated.net/Blog/61/combining-multiple-assemblies-into-a-single-exe-for-a-wpf-application