-1
我正在開發一個sharpdevelop 3.2的網絡緊湊框架項目。 它工作得很好,但必須有像firebird網絡提供商和其他組件的DLL,我使用exe文件夾時,我運行它。 如何將所有這些DLL嵌入到EXE中,讓它嵌入到一個exe文件中,而不需要將它們分開粘貼到我運行EXE的文件夾中?SharpDevelop - 如何嵌入,編譯EXE文件與DLL的程序集?
我正在開發一個sharpdevelop 3.2的網絡緊湊框架項目。 它工作得很好,但必須有像firebird網絡提供商和其他組件的DLL,我使用exe文件夾時,我運行它。 如何將所有這些DLL嵌入到EXE中,讓它嵌入到一個exe文件中,而不需要將它們分開粘貼到我運行EXE的文件夾中?SharpDevelop - 如何嵌入,編譯EXE文件與DLL的程序集?
我最常用這種方法的方法是將程序集作爲資源添加到EXE中,然後爲AssemblyResolve
事件添加一個處理程序,以便將資源中的程序集解壓縮到內存中並從那裏加載。
使用AssemblyResolve
的好處在於,如果需要,您可以用磁盤上的實際程序集覆蓋資源限制程序集,因爲它不會調用AssemblyResolve
,直到它無法通過常規方法找到程序集。如果您希望強制它始終加載資源,請改用AssemblyLoad
。
您還可以壓縮資源以減少膨脹,從而節省總部署的字節數。
還是我必須使用ilmerge? – user3762355