2009-11-12 16 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

通過從匹配圖案移除所述文件夾(即,\),它會僅包括測試組件一次,甚至如果它發現在兩個不同的文件夾中。