C# C“创建”;。exe";图书馆

C# C“创建”;。exe";图书馆,c#,dll,project,C#,Dll,Project,我正在我的项目中使用一些DLL。要生成“.exe”文件,我只在解决方案配置中使用了“Released”。在我的电脑中,exe文件可以正常工作,但在另一个电脑中有一个错误:“无法加载文件X…”。X是一个dll文件。我怎样才能解决这个问题?我已将所有DLL复制到project bin realese中。将DLL复制到与EXE相同的文件夹中。如果您将它们放在子目录中,那么您必须在app.exe.config文件中使用元素,以便CLR可以在那里找到它们。如果您不需要对DLL的依赖关系,请在项目中的“引用

我正在我的项目中使用一些DLL。要生成“.exe”文件,我只在解决方案配置中使用了“Released”。在我的电脑中,exe文件可以正常工作,但在另一个电脑中有一个错误:“无法加载文件X…”。X是一个dll文件。我怎样才能解决这个问题?我已将所有DLL复制到project bin realese中。

将DLL复制到与EXE相同的文件夹中。如果您将它们放在子目录中,那么您必须在app.exe.config文件中使用
元素,以便CLR可以在那里找到它们。

如果您不需要对DLL的依赖关系,请在项目中的“引用”下右键单击它并将其删除。如果您确实需要依赖项,那么它将需要使用EXE转到其他计算机。

上述答案对于加载依赖项库是通用的。但是,这也可能取决于exe如何加载库。例如,使用DI引擎从特定文件夹加载目录库。如果所需的库不存在,则可能会出现类似的异常。请检查您的.exe要求以了解其特定依赖项。

我将其放在同一目录中,但我想在其他计算机上使用我的应用程序,因此我只想使用exe文件。我该怎么办?您可以使用第三方工具(如SmartAssembly或DeepSea)将DLL嵌入可执行文件中,也可以使用IL merge合并程序集。或者,您可以创建一个安装工具并部署它,或者使用ClickOnce部署。这是否与原始问题相关?谷歌
ilmerge
LOL在动态链接库中静态链接。“动态”部分首先是将它与库分开的部分=D@Ed在.NET上,所有库都是DLL。如果想要非动态行为,必须使用ILMerge将它们与EXE组合。