2009-11-12 64 views
13

以下错误现在,然后弹出每个:如何摆脱“API限制UnitTestFramework.dll已经加载”的错误?

C:\Program Files\MSBuild\Microsoft\VisualStudio\v9.0\TeamTest\Microsoft.TeamTest.targets(14,5): error : API restriction: The assembly 'file:///C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll' has already loaded from a different location. It cannot be loaded from a new location within the same appdomain.

如何摆脱它?

回答

8
  • 编辑的.csproj文件
  • 在UnitTestFramework参考的末尾删除ProcessorArchitecture用于= MSIL。

变化:

<reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" /> 

到:

<reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> 
  • 重新启动Visual Studio
+1

<参考包含= “Microsoft.VisualStudio.QualityTools.UnitTestFramework,版本= 9.0.0.0,文化=中性公钥= b03f5f7f11d50a3a /> 缺少末报价,应该是: <参考包含=” Microsoft.VisualStudio.QualityTools.UnitTestFramework,版本= 9.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a“/> – theJerm 2010-04-26 21:53:11

+0

这对我来说是第一次,但从那以后,我遇到了同样的测试项目的问题。我已经检查过.csproj文件,并且ProcessorArchitecture位肯定不存在,我认为它可能已经以某种方式回退了,但它没有。 – TabbyCool 2011-07-13 09:41:56

+2

Kevin:你能解释一下这个背后的想法吗?同样的问题,但看到什么是布莱恩的矛盾解释克上。 – 2011-11-16 22:48:22

5

如果当它试图在运行测试你收到此错误您TFS构建服务器,那么你可能只需要改变拍拍TFS构建定义用于定位测试程序集。 This post描述了问题和解决方案。基本上TFS在两个不同的文件夹中找到相同的测试程序集并尝试将其包含两次。为了解决这个问题:

  1. 打开团队资源管理器
  2. 展开树,直到看见建立为您的项目
  3. 问题选择构建
  4. 右键单击>编辑生成定义
  5. 点击过程上左边的边条
  6. 展开'2。基本”>自动测试
  7. 点击编辑
  8. 更改试件文件规范来去除图案的文件夹匹配。例如。改变**** \ 测试的.dll **到*测试* .DLL

通过从匹配图案移除所述文件夹(即,\),它会仅包括测试组件一次,甚至如果它发现在两个不同的文件夹中。