c#应用程序与c ++库System.IO.FileNotFoundException

时间:2013-03-05 18:59:28

标签: c# c++ winforms dll

我遇到了一个非常艰难的dll问题。  我正在使用side dll使我的Windows窗体应用程序与网络摄像头一起工作。应用程序在我的带VS2012的PC上运行正常,在我的笔记本电脑上使用VS2012,但它在Windows XP上完全无法运行,在虚拟机上运行。
 我正在收到JIT留言

System.IO.FileNotFoundException: Could not load file or assembly '---, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.

为了防止很多问题,我会自己回答:
是, dll会使用.exe复制到目录
是的,我确实将其部署为“发布”
是的,我确实将应用程序编译为x86目标平台
是的,我确实将dll编译为x86目标平台
是的,我确实安装了vcRedist所有版本以定位Windows XP
是的,我确实将.NET从3.0安装到4.0以定位Windows XP


我只是无法找出为什么我的计算机与Visual Studio可以使用该DLL,但XP不能。

2 个答案:

答案 0 :(得分:2)

Dependency Walker将是用于找出DLL中缺少哪个依赖项的工具,从而阻止XP加载它。

您是否使用“v110_xp”工具集(Visual Studio 2012 - 使用更新1获得的Windows XP工具集)构建了本机C ++ DLL?如果你没有,那就是你的问题。默认情况下,使用普通v110编译器配置在VS2012中构建的C ++代码生成的可执行文件在Windows XP上不起作用,但需要Vista或更高版本。

答案 1 :(得分:0)

请注意'或其中一个依赖词'......这可能是你的问题而不是它自己的dll

你的dll可能正在调用api或使用XP中没有的dll。

Dependency walker是你的朋友