c#应用程序通过visual studio运行良好,但独立的exe失败

本文关键字:独立 失败 exe 应用程序 visual 运行 studio | 更新日期: 2023-09-27 17:53:39

当我通过Visual Studio 2012运行它或通过Debug/Release文件夹执行。exe时,我的c#应用程序运行良好(在调试和发布模式下),但当我将。exe复制到其他位置并运行它时,它会失败。我收到的错误信息是:

无法加载文件或程序集的bms。Common, Version=5.0.0.1006, Culture=neutral, PublicKeyToken=null'或其依赖项之一。系统找不到指定的文件

我正在将.exe从调试/发布文件夹复制到某个文件夹。我做错了吗?

c#应用程序通过visual studio运行良好,但独立的exe失败

在调试文件夹中只存在。exe文件?没有其他的了吗?您应该将所有.dll文件与.exe文件一起从Debug文件夹复制到目标目录。如果您想将所有库打包到一个可执行程序集中,请查看ILMerge实用程序http://www.microsoft.com/en-us/download/details.aspx?id=17630

用法:

C:'Program Files (x86)'Microsoft'ILMerge> ILMerge C:'my.exe C:'my.dll/out:C:'merged.exe

一般来说,您应该将dll部署在与可执行文件相同的文件夹中。使用。net时,我们通常不会像链接c程序那样将所有内容编译成一个大的。exe。

有一些例外:例如,您可以将dll放在GAC中,或者将它们放在其他地方,并提供所谓的"探测路径"。这些都是高级方法,除非你知道自己在做什么,否则不应该使用。

有关。net如何解析DLL引用的完整信息,我建议您阅读此处