如何获得unit testing在x64平台上运行
我有一个C#应用程序必须在x64模式下运行。 问题是我尝试创build在x64应用程序中运行方法的unit testing,unit testing项目甚至不会构build。 当它试图build立时,我得到以下错误。
加载C时出错:….. \ bin \ x64 \ Debug …. UnitTests.dll:无法加载testing容器'C:….. \ bin \ x64 \ Debug …. UnitTests.dll或者它的一个依赖关系。 如果将testing项目程序集构build为64位程序集,则无法加载。 构buildtesting项目程序集时,请为该平台select“任何CPU”。 要在64位处理器上以64位模式运行testing,必须在“主机”选项卡中更改testing设置,以32位进程运行testing。 错误的详细信息:无法加载文件或程序集'file:/// C:…….. UnitTests \ bin \ x64 \ Debug …. UnitTests.dll'或其依赖项之一。 试图加载格式不正确的程序。
我试图将unit testing更改为X64和任何CPU,仍然无法让它运行。 有没有解决这个问题?
我假设你正在使用Visual Studiostesting框架,因为你没有提到其他的。 在VS2010中,您可以强制testing主机以x64运行。 将您的程序集构build为任何CPU或x64,然后将testing主机设置为x64。
在VS 2012及更高版本中,您可以从“ Test Settings|Default Processor Architecture
下的“ Test Settings|Default Processor Architecture
我有一个类似的问题。 在Visual Studio 2010(x64下)中存在一个奇怪的问题,当您将新项目添加到现有解决scheme时,会导致目标CPU发生更改。 你确定所有的引用和CPU目标都是x64吗?
您将需要将所有testing项目的引用设置为本地(设置为true)。 我之前得到这个问题,希望它也能为你工作(我使用的是Windows 7 64位+ VS2012)
如果您清理并重build所有相关的程序集,则可以修复此错误。 必须有一个文件意外损坏。
对于VS来说,改进的一件事是检测到坏格式exception的时候,请报告文件名。 那么开发者只能重build那个文件。