32Bit DLL无法正常构建

时间:2013-06-13 20:45:52

标签: c# visual-studio dll 32bit-64bit

我们有一个c#可执行文件,它加载一个用C ++编写的32位dll,它动态加载另一个32位dll(第一个dll是一个包装器)。

如果它是在32位机器上构建的(使用VS工具集v100),它都能正常工作。

当它在64位机器(使用VS工具集v110)上构建时,它在某些机器上运行,但在其他机器上,它会在包装器DLL上获得FileNotFoundException。它可以在某些64位机器上运行,在某些机器上运行失败并在至少一台32位机器上运行失败。

失败发生在Assembly.LoadFrom中,其位置来自Assembly.GetExecutingAssembly()。位置。 dll与exe相同的目录,构建为x86。

如果在64位机器上构建以获得失败的版本,那么我放入一个在32位机器上构建的包装器DLL的版本,它可以正常工作(因此它不是真正的文件未找到问题,而是'正确' '找不到文件)。

为什么会失败的任何想法?它是构建机器还是工具集?或者是其他东西?是否有我可以在构建中设置以使其正常工作(我想继续构建在64位盒子上)?

1 个答案:

答案 0 :(得分:0)

您是否在客户端计算机上安装了所有依赖dll?像VC Runtime,你依赖的其他库?

相关问题