MS伪造单元测试在Visual Studio 2013 Update 4之后失败

时间:2014-11-14 16:13:34

标签: unit-testing visual-studio-2013 microsoft-fakes

我最近从Microsoft Visual Studio 2013 Update 3(高级版)升级到Microsoft Visual Studio 2013 Update 4(高级版),现在我现有的单元测试项目已停止编译。它失败并出现错误:

  

类型'Microsoft.QualityTools.Testing.Fakes.Stubs.StubBase`1'   在未引用的程序集中定义。你必须添加一个   参考汇编'Microsoft.QualityTools.Testing.Fakes,   Version = 12.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'

我们和很多其他人一样,在VS2013中引入了一个类似的问题,可以通过在FakesAssemblies中手动删除.messages文件(通过文件资源管理器或解决方案资源管理器查看所有文件)来解决项目文件夹中的文件夹。然而,即使我删除了整个FakesAssemblies文件夹,这也无法解决问题。

对项目的引用(包括正确的版本是他们在项目中)。我已经删除了引用并对它进行了读取但它没有效果,它们仍然无法编译。

单元测试项目仍然使用Visual Studio 2013 Update 3编译并传递给其他同事机器。

使用MS假货的新项目单元测试项目也无法构建。

如此简短,卸载Update 4还有什么我可以尝试的吗?

如果不是,我将在Microsoft Connect上记录错误。

5 个答案:

答案 0 :(得分:53)

Microsoft.QualityTools.Testing.Fakes的参考属性中,将“特定版本”属性更改为 FALSE 。这样做将允许Visual Studio 2013使用您计算机上安装的任何版本的Microsoft.QualityTools.Testing.Fakes

使用Visual Studio 2013 Update 4,Microsoft将Microsoft.QualityTools.Testing.Fakes.dll的版本号从11.0增加到12.0;这就是导致事情破裂的原因。

答案 1 :(得分:5)

  1. 修复程序是删除所有以.FAKES结尾的引用(包括Microsoft.QualityTools.Testing.Fakes.dll引用)。
  2. 我还删除了FAKES文件夹
  3. 清洁解决方案
  4. 然后重读所有参考文献。
  5. 我们还有一些与Shims有关的错误,但我们只是将它们转换为Stubs。

    我们必须手动以这种方式升级所有项目,所有VS实例包括构建服务器。

答案 2 :(得分:0)

尝试清理整个项目并重新编译, 这对我有用!

答案 3 :(得分:0)

在这里尝试了所有答案后,它终于为我工作了。 代码:

using (ShimsContext.Create())

(习惯)抛出:

  

无法从库中获取函数SetDetourProvider的地址   '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 \

希望它有所帮助。

答案 4 :(得分:0)

我添加了以下程序集并重建了我的解决方案。它开始为我工作。 一个。 C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ PublicAssemblies \ Microsoft.QualityTools.Testing.Fakes.dll

B中。 C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ PublicAssemblies \ Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll