2

我将 DLL 编译为“任何 CPU”,因此它们可以在 x86 和 x64 中运行,但是当我尝试在调试模式 (x64) 下运行时,它一直告诉我尝试运行项目时出错:无法加载文件或程序集'项目'或其依赖项之一。试图加载格式不正确的程序。

但是,当我运行从调试目录创建的 *.exe 或在没有调试的情况下在 Visual Studio 中运行它时,它运行良好,如果我在 x86 调试模式下运行它也可以。为什么它可以在 Visual Studio 中的调试模式之外的所有环境中工作?

该应用程序是桌面应用程序,因此没有 IIS 应用程序池可以更改为 32 位。

4

2 回答 2

0

使用corflags.exe获取“项目”dll 的 PE 信息。它应该说PE:PE32+32Bit:0如果它是作为 x64 构建的。检查以确保“项目”的调用者正在引用该项目,而不是其他地方构建目录中的流氓 dll。

  • 首先检查参考
  • 使用 corflags 检查该参考
  • 报告结果
于 2013-02-07T16:28:11.733 回答
0

我注意到有时当您更改配置时,并不会更改所有项目。如果您在 x64 配置中转到 Build > Configuration Manager,是否所有项目都设置为构建 x64 版本?

于 2013-02-07T15:51:34.773 回答