2012-06-09 46 views
2

我有一個包含WPF用戶控件的類庫。這個庫有一些依賴關係,但我想將它作爲一個程序集進行部署。據我所知,IlMerge在WPF方面存在一些問題。我試過Costura,但它只適用於應用程序,不適用於類庫(因爲我發現了here)。有什麼方法可以實現我的目標嗎?.NET合併類庫引用

回答

4

作爲Costura的貢獻者之一,我現在可以確認它適用於圖書館以及應用程序。實際上,所有針對Costura的單元測試都在一個庫中,所以它確實有效。

1

結賬this link。當我讀到某處時,即使ILMerge的作者也告訴他,如果他知道這種方式,ILMerge就不會存在。 就我個人而言,我在WinForms項目中使用它,它工作得很好,但它正確地處理WPF是stated

+0

當我知道這種做法與應用程序只工作機組的負荷 – SiberianGuy

0

我知道它已經回答了,但修復使用反射,你可以將下列代碼附着在AssemblyLoad事件

var assembly = Assembly.LoadFile(@"<path to your dll>"); 
var assemblyLoaderType = assembly.GetType("Costura.AssemblyLoader", false); 
var attachMethod = assemblyLoaderType?.GetMethod("Attach", BindingFlags.Static | BindingFlags.Public); 
attachMethod?.Invoke(null, new object[] { });