2010-12-14 42 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需求以了解其特定的依赖关系。