2014-11-14 106 views
18

我最近從Microsoft Visual Studio 2013 Update 3(Premium版本)升級到Microsoft Visual Studio 2013 Update 4(Premium版本),現在我現有的單元測試項目已停止編譯。它失敗,出現錯誤:微軟Visual Studio 2013更新4後失敗的單元測試

The type 'Microsoft.QualityTools.Testing.Fakes.Stubs.StubBase`1' is defined in an assembly that is not referenced. You must add a reference to assembly 'Microsoft.QualityTools.Testing.Fakes, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'

我們,有很多其他人一起,在那裏有一個錯誤在VS2013推出了類似的問題,可以通過手動刪除文件.messages來解決(通過文件管理器或解決方案資源管理器查看所有文件啓用)內的FakesAssemblies文件夾內的項目文件夾。但是,這並不能解決問題,即使我刪除了整個FakesAssemblies文件夾。

對項目的引用(包括正確的版本在項目中)。我已經刪除了參考文件,並認爲它沒有效果,但仍然無法編譯。

單元測試項目仍編譯和其他同事的機器通過使用Visual Studio 2013更新使用MS假貨也無法建立3

新項目的單元測試項目。

因此,卸載更新4有什麼我可以嘗試嗎?

如果沒有,我會在Microsoft Connect上記錄一個錯誤。

回答

5
  1. 此修復程序旨在刪除所有以.FAKES結尾的引用(包括Microsoft.QualityTools.Testing.Fakes.dll參考)。
  2. 我也刪除了文件夾假貨
  3. 清理解決方案
  4. 然後重新添加的所有引用回。

我們有一些進一步的錯誤做墊片,但我們只是轉換這些給存根。

我們必須手動升級所有項目,包括構建服務器在內的所有VS實例。

52

在Microsoft.QualityTools.Testing.Fakes的參考屬性中,將「特定版本」屬性更改爲FALSE。這樣做將允許VS2013使用任何版本的Microsoft.QualityTools.Testing.Fakes安裝在您的機器上。

使用VS2013 Update 4,Microsoft將Microsoft.QualityTools.Testing.Fakes.dll的版本號從11.0增加到12.0;這是什麼導致事情打破。

+1

不幸的是這沒有工作:-( – Kyle 2014-11-17 13:00:54

+0

這爲我工作,謝謝! – 2014-11-17 15:09:57

+0

這工作就像一個魅力!謝謝! – SarjanWebDev 2015-05-26 05:59:34

0

嘗試清理整個項目並重新編譯, 對我有用!

+0

我試了幾次,它沒有工作。 – DanielV 2015-08-20 10:40:57

+0

您是否嘗試清潔FakesAssemblies文件夾並重建解決方案? – Alexander 2015-10-06 13:51:26

1

在嘗試所有答案後,它終於爲我工作。 代碼:

using (ShimsContext.Create()) 

(用於)拋出:

Failed to get address of function SetDetourProvider from library 'C:\Program Files (x86)\Microsoft Visual Studio 11.0\Team Tools\Performance Tools\vsperfcorprof.dll'.

我的測試項目是在2012年運行我替換這些下列DLL:

  • Microsoft.VisualStudio。QualityTools.UnitTestFramework.dll (版本:10.1.0.00,文件版本:11.0.60610.1)
  • Microsoft.QualityTools.Testing.Fakes.dll (版本:11.0.0.0,文件版本:11.0.60315.1)

它們分別位於:

C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PublicAssemblies\

希望它能幫助。

+1

你可以發佈拋出異常的代碼嗎? – Juanito 2015-08-11 12:13:41

0

我添加了以下組件並重建了我的解決方案。它開始爲我工作。 A. C:\ Program Files文件(x86)的\微軟的Visual Studio 12.0 \ Common7 \ IDE \ PublicAssemblies \ Microsoft.QualityTools.Testing.Fakes.dll

B. C:\ Program Files文件(x86)的\微軟的Visual Studio 12.0 \ Common7 \ IDE \ PublicAssemblies \ Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll