应用程序在 Visual Studio 的单元测试中以 x86 运行,但在独立时以 x64 运行

Application runs as x86 in unit tests in Visual Studio, but runs as x64 when it stands alone

这行代码

Environment.Is64BitProcess

当我的应用 运行 独立时评估为真。

但是在我 Visual Studio.

中的单元测试中,相同的表达式在 运行 时计算结果为 false

我选择了"Any CPU"作为解题平台,机器是64位的

这是为什么?

即使我像上图那样设置,Resharper 仍然以 x86 运行它

这基本上表明单元测试 运行ner 正在作为 32 位进程启动。如何配置取决于您使用的单元测试运行(有很多)。

当您 运行 进行单元测试时,与单元测试 运行 的配置相比,您的应用程序程序集在体系结构方面的任何偏好都将被忽略 - 而当您运行宁独立,构建配置(例如"AnyCPU prefer x86"或只是"AnyCPU")将是相关的。

如果您真的非常需要您的单元测试 运行 在 x64 中,您应该看看您如何 运行 它们 - 如果您不能改变它们的方式 运行 在 VS 中,您至少可以 运行 在独立的 运行 中使用它们,这可能更容易支持 x64。