2

这行代码

Environment.Is64BitProcess

当我的应用程序单独运行时评估为真。

但是,当它在 Visual Studio 的单元测试中运行时,相同的表达式的计算结果为 false。

我选择了“Any CPU”作为解决方案平台,机器是64位的。

为什么是这样?

在此处输入图像描述

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

4

1 回答 1

3

这基本上说单元测试运行器是作为 32 位进程启动的。如何配置取决于您使用的单元测试运行器(其中有很多)。

当您运行单元测试时,与单元测试运行器的配置相比,您的应用程序程序集在架构方面的任何偏好都将被忽略 - 而当您独立运行时,构建配置(例如“AnyCPU 首选 x86”或只是“AnyCPU”)将是相关的。

如果你真的,真的需要你的单元测试在 x64 中运行,你应该看看你是如何运行它们的——如果你不能改变它们在 VS 中的运行方式,你至少可以在一个可以更轻松地支持 x64 的独立运行程序。

于 2015-09-08T14:44:29.563 回答