2014-06-21 108 views
-1

我正在開發一個sharpdevelop 3.2的網絡緊湊框架項目。 它工作得很好,但必須有像firebird網絡提供商和其他組件的DLL,我使用exe文件夾時,我運行它。 如何將所有這些DLL嵌入到EXE中,讓它嵌入到一個exe文件中,而不需要將它們分開粘貼到我運行EXE的文件夾中?SharpDevelop - 如何嵌入,編譯EXE文件與DLL的程序集?

+0

還是我必須使用ilmerge? – user3762355

回答

0

我最常用這種方法的方法是將程序集作爲資源添加到EXE中,然後爲AssemblyResolve事件添加一個處理程序,以便將資源中的程序集解壓縮到內存中並從那裏加載。

使用AssemblyResolve的好處在於,如果需要,您可以用磁盤上的實際程序集覆蓋資源限制程序集,因爲它不會調用AssemblyResolve,直到它無法通過常規方法找到程序集。如果您希望強制它始終加載資源,請改用AssemblyLoad

您還可以壓縮資源以減少膨脹,從而節省總部署的字節數。