这行代码。Environment.Is64BitProcess 当我的应用程序独立运行时,该表达式的值为真。 但是,当它在Visual Studio的单元测试中运行时,相同的表达式的值为假。 我选择了“Any CPU”作为解决方案平台,计算机是64位的。 这是为什么呢? 即使我像上面的图片那样设置了它,Resharper仍然将其作为x86运行。
这基本上说明了单元测试运行器启动为32位进程。如何配置取决于你使用的单元测试运行器(有许多不同的运行器)。 当你运行单元测试时,与应用程序程序集关于架构的任何偏好相比,将忽略单元测试运行器的配置。而在独立运行时,生成配置(例如"AnyCPU prefer x86"或仅"AnyCPU")将是相关的。 如果你真的非常需要在x64中运行单元测试,你应该查看如何运行它们。如果你无法更改它们在VS中的运行方式,你可能至少可以在一个独立的运行器中运行它们,这样很可能更容易支持x64。