如何让单元测试在x64平台上运行

时间:2011-04-06 19:12:36

标签: c# .net asp.net visual-studio

我有一个必须在x64模式下运行的C#应用​​程序。问题是我尝试创建在x64应用程序中运行方法的单元测试,而单元测试项目甚至不会构建。尝试构建时出现以下错误。

  

加载C时出错:..... \ bin \ x64 \ Debug .... UnitTests.dll:无法加载   测试容器'C:..... \ bin \ x64 \ Debug .... UnitTests.dll'或者一个   它的依赖关系。如果将测试项目程序集构建为64   位组装,无法加载。在构建测试项目时   组装,为平台选择“任何CPU”。在64中运行测试   64位处理器上的位模式,您必须更改您的测试设置   “主机”选项卡以32位进程运行测试。错误详情:   无法加载文件或程序集   'file:/// C:..... UnitTests \ bin \ x64 \ Debug .... UnitTests.dll'或其中之一   它的依赖关系。尝试加载带有的程序   格式不正确。

我试图将单元测试更改为x64以及任何CPU,但仍然无法运行它。有没有解决这个问题?

7 个答案:

答案 0 :(得分:52)

在VS 2012及更高版本中,您可以从Test

下的Test Settings|Default Processor Architecture菜单中选择默认目标平台

Visual Studio Test Settings

答案 1 :(得分:40)

我假设您正在使用Visual Studios测试框架,因为您没有提及其他。 在VS2010中,您可以强制测试主机在x64中运行。 将程序集构建为任何CPU或x64,然后将测试主机设置为x64。

http://msdn.microsoft.com/en-us/library/ee782531.aspx

答案 2 :(得分:1)

我有类似的问题。 Visual Studio 2010中存在一个奇怪的问题(在x64下),这会在将新项目添加到现有解决方案时更改目标CPU。您确定所有引用和CPU目标都是x64吗?

答案 3 :(得分:1)

我遇到了同样的问题,添加App.config文件

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
</configuration>

答案 4 :(得分:0)

您需要将测试项目的所有引用设置为local(设置为true)。我以前遇到过这个问题,希望它也适合你(我使用的是Windows 7 64位+ VS2012)

答案 5 :(得分:0)

如果清理并重建所有相关程序集,则可以修复此错误。必须有一个文件意外损坏。

VS要改进的一件事是,当检测到错误的格式异常时,请报告文件名。然后开发人员只能重建该文件。

答案 6 :(得分:0)

对于 nunit3 仅适用于喜欢 dotnet test 的用户

这项工作适用于 .NETcore 和 .NETFramework 项目

dotnet test -- RunConfiguration.TargetPlatform=x64