2010-12-14 79 views
3

我在我的項目中使用了一些dll。要創建'.exe'文件,我只使用解決方案配置中的「發佈」。在我的電腦exe文件工作,但在另一個有一個錯誤:「無法加載文件X ...」。 X是一個dll文件。我怎麼解決這個問題?我將所有的dll複製到project-bin-realese中。C#用庫創建「.exe」

回答

1

將DLL複製到與EXE相同的文件夾中。你把它們放在一個子目錄中,那麼你將不得不在app.exe.config文件中使用<probing>元素,以便CLR可以在那裏找到它們。

+2

我有它在同一目錄中,但我想在另一臺電腦上使用我的應用程序,所以我只想使用exe文件。我該怎麼辦? – user449921 2010-12-14 21:39:40

+0

您可以使用第三方工具(如SmartAssembly或DeepSea)將可執行文件嵌入到可執行文件中,也可以使用IL合併合併程序集。或者,您可以創建安裝工具並部署該工具,或使用ClickOnce部署。 – Guy 2010-12-14 21:42:36

+2

這是否與原始問題有關?谷歌'ilmerge' – 2010-12-14 21:43:00

1

如果您不需要對DLL的依賴關係,請在項目的「參考」下右鍵單擊它並將其刪除。如果您確實需要依賴項,則需要使用EXE轉至其他計算機。

0

以上答案對於加載依賴庫是通用的。但是,它也可能取決於如何加載庫的exe。例如,MEF有一個DI引擎,用於從特定文件夾加載目錄庫。如果所需的庫不存在,您可能會遇到類似的異常。檢查您的.exe需求以瞭解其特定的依賴關係。