我有一个编译为64位的ADO.NET驱动程序。因此,我需要以64位模式运行mstests。这是否可行?
(开发机器是64位)。
Visual Studio内置了此选项。如果您不知道在哪里查找,可能会有点困难。
在Solution Explorer中双击local.testsettings
文件,并在列表框中选择Hosts
。然后按照图像所示更改。
您必须在64位操作系统中进行测试,并使用AnyCPU
编译应用程序。
在Visual Studio 2013中,这个操作更加简单。在运行测试之前,选择“测试”->“测试设置”->“默认处理器架构”->“x64”即可。
请尝试在此博客文章中描述的解决方案:
mstest.exe
并运行CorFlags.exe MSTest.exe /32BIT- /Force
以删除32位标志/noisolation
运行您的测试:MSTest.exe /testcontainer:<your-assembly> /resultsfile:<your-results-file> /noisolation
MSTest.exe
失败,请运行reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\StrongName\Verification\MSTest,b03f5f7f11d50a3a /f
跳过强名称验证/noisolation
运行应该会使用仍为32位的 VSTestHost.exe
运行。虽然我自己没有尝试过。请务必备份 mstest.exe
。作为替代方案,您可以使用脚本在32位和64位 mstest.exe
之间切换。 - Håvard Smstest.exe
复制为 mstest64.exe
,并使用它来运行标志移除和测试? - ZoolWay