【问题标题】:MS Fakes unit tests failing after Visual Studio 2013 Update 4在 Visual Studio 2013 更新 4 后 MS Fakes 单元测试失败
【发布时间】:2015-01-12 02:18:54
【问题描述】:

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

类型“Microsoft.QualityTools.Testing.Fakes.Stubs.StubBase`1” 在未引用的程序集中定义。您必须添加一个 参考程序集'Microsoft.QualityTools.Testing.Fakes, 版本=12.0.0.0,文化=中性,PublicKeyToken=b03f5f7f11d50a3a'

我们和许多其他人都遇到过类似的问题,即在 VS2013 中引入了一个错误,可以通过手动删除 FakesAssemblies 中的 .messages 文件(通过文件资源管理器或启用查看所有文件的解决方案资源管理器)来解决项目文件夹内的文件夹。然而,这并不能解决问题,即使我删除了整个 FakesAssemblies 文件夹。

对项目的引用(包括项目中的正确版本)。我已经删除了引用并重新添加了它,它没有效果,它们仍然无法编译。

单元测试项目仍在使用 Visual Studio 2013 Update 3 的其他同事机器上编译和传递。

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

这么短,卸载更新 4 还有什么我可以尝试的吗?

如果没有,我会在 Microsoft Connect 上记录一个错误。

【问题讨论】:

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


    【解决方案1】:

    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;这就是导致事情破裂的原因。

    【讨论】:

    • VS2015 Update3中也会出现这个错误,Microsoft.QualityTools.Testing.Fakes.dll是版本12,在这个路径:C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE \ReferenceAssemblies\v2.0\Microsoft.QualityTools.Testing.Fakes.dll
    【解决方案2】:
    1. 修复是删除所有以 .FAKES 结尾的引用(包括 Microsoft.QualityTools.Testing.Fakes.dll 引用)。
    2. 我还删除了 FAKES 文件夹
    3. 清洁溶液
    4. 然后将所有引用重新读回。

    我们还有一些与 Shims 相关的错误,但我们只是将这些错误转换为 Stub。

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 您是否尝试清理 FakesAssemblies 文件夹并重建解决方案?
      【解决方案4】:

      在这里尝试了所有答案之后,它终于对我有用。 代码:

      using (ShimsContext.Create())
      

      (曾经)抛出:

      无法从库中获取函数 SetDetourProvider 的地址 'C:\Program Files (x86)\Microsoft Visual Studio 11.0\Team 工具\性能工具\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\

      希望对你有帮助。

      【讨论】:

      • 能否贴出引发异常的代码?
      【解决方案5】:

      我添加了以下程序集并重建了我的解决方案。它开始为我工作。 一种。 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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-19
        • 2016-05-12
        • 1970-01-01
        • 2020-03-09
        相关资源
        最近更新 更多