【问题标题】:32 bit dll referennce not failing on the 64 bit machine32 位 dll 参考在 64 位机器上没有失败
【发布时间】:2013-03-23 10:43:40
【问题描述】:

我创建了一个控制台应用程序。在那个应用程序中,我引用了一个 x86 编译的 dll。在项目设置中,我将目标平台更改为 x64。

当我运行应用程序 (F5) 时,它会抛出 BadImageFormatException。没关系,但是如果我只是构建(构建成功)并将 .exe 文件复制到其他一些 64 位操作系统机器并运行运行正常的 exe,而不是在 VS 中运行应用程序。

为什么它在另一台机器上没有失败。是什么原因?

我的开发机是64bit windows 7,VS2010是32bit,另一台机器是64bit windows server 2008 R2。

【问题讨论】:

    标签: c# visual-studio-2010 build 32bit-64bit


    【解决方案1】:

    因为 32 位 dll 与 64 位 CPU 兼容,另一方面,64 位 dll 与 32 位 CPU 不兼容。

    当您调试应用程序时,调试器预计应用程序是 64 位的,这就是它失败的原因。

    尝试不调试CTRL+F5运行它,它会运行得很好。

    【讨论】:

    • 不调试也会抛出同样的异常。我的应用程序目标平台设置为 x64。 (我在原来的问题中提到过)
    猜你喜欢
    • 2011-08-08
    • 2011-04-09
    • 2012-11-07
    • 1970-01-01
    • 2012-05-22
    • 1970-01-01
    • 2012-07-05
    • 2016-07-03
    相关资源
    最近更新 更多