如何摆脱“API 限制 UnitTestFramework.dll 已加载”错误?
-
19-09-2019 - |
题
时不时会弹出如下错误:
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.
我该如何摆脱它?
解决方案
- 编辑 .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
其他提示
如果您在尝试在 TFS 构建服务器上运行测试时遇到此错误,那么您可能只需更改 TFS 构建定义用于查找测试程序集的模式。 这个帖子 描述问题和解决方案。基本上,TFS 在两个不同的文件夹中找到相同的测试程序集,并尝试将其包含两次。要解决此问题:
- 打开团队资源管理器
- 展开树直到您看到项目的构建
- 选择有问题的构建
- 右键单击 > 编辑构建定义
- 点击 过程 在左侧边栏上
- 展开'2。基础'>自动化测试
- 点击 编辑
- 改变 测试装配文件规范 删除模式中匹配的文件夹。例如。改变 ****\测试.dll** 到 *测试*.dll
通过从匹配模式中删除文件夹(即\) 它只会包含测试程序集一次,即使它在两个不同的文件夹中找到它。
不隶属于 StackOverflow