2014-11-14 108 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