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从调试/发布文件夹复制到某个文件夹。我做错了吗?
在调试文件夹中只存在。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引用的完整信息,我建议您阅读此处