2013-09-26 42 views
2

我想創建一個下載器,它需要是一個單一的可執行文件。用嵌入式DLL創建一個exe文件

this answer的幫助下,我設法將我的DLL文件鏈接到可執行文件。 但是,一個DLL使用它自己的DLL,我似乎也無法將它嵌入。

我試圖添加CORE模塊(from this answer),我從需要該DLL的函數調用EnsureInitialized()子。 但由於某種原因,我不斷收到無法加載DLL的消息。 如果我調用了assembly.load函數,那麼我在該行發現DLL未找到錯誤。 該DLL作爲資源嵌入並且也在引用中(但沒有本地副本,因爲我不想這樣)。

它爲什麼不加載我的DLL? 我甚至將它嵌入到我的下載器可執行文件中並將其加載到那裏,但是需要它的DLL不會加載它或使用加載的DLL。

有什麼建議嗎?

我使用的代碼是兩個提到的答案。

RG, 埃裏克

回答

1

也許這個最簡單的方法是使用ILMerge。您從命令行運行此命令行指定源exe文件和您要合併的DLL,它會生成一個結果exe文件:

ilmerge /target:winexe /out:c:\MyMergedExe.exe c:\MySourceExe.exe C:\MyDLL1.dll C:\MyDLL2.dll