【问题标题】:Assembly conflict resolution for Microsoft.Data.Tools.Schema.Sql.UnitTesting assemblyMicrosoft.Data.Tools.Schema.Sql.UnitTesting 程序集的程序集冲突解决
【发布时间】:2017-02-14 23:47:24
【问题描述】:

我有一个来自 VS 2015 的数据库单元测试项目。我现在正在测试 VS 2017 RC。

Microsoft.Data.Tools.Schema.Sql.UnitTesting 程序集存在程序集冲突,我不确定如何解决。 GAC 拥有此程序集的 15.0 版。作为 VS 2017 SSDT 的一部分,15.1 版可用,但不在 GAC 中。

我在 app.config 中尝试过程序集重定向,但这并没有什么不同。

我尝试专门浏览到C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Extensions\Microsoft\SQLDB 文件夹并选择那里的程序集作为参考。但是,它恢复到 GAC 程序集。即使我在项目属性中设置 Specific Version = True,它也会继续这样做。

我已经从参考路径项目属性中删除了带有 SSDT 的旧文件夹,并将其指向 2017 位置。

我在使用 Microsoft.Data.Tools.Components 程序集时遇到了类似的问题,但通过在项目属性中指定 Specific Version = False(奇怪的是...)解决了这个问题。

如果我从项目中删除引用,项目会生成,但会警告找不到 15.0 版的程序集。在这种情况下,测试甚至可以运行并通过。不过,只要解决方案是开放的,这种情况就会持续下去。一旦我关闭并重新打开它,“错误”引用就会重新出现在引用列表中。

编辑:我运行了 asmspy,它检测到系统程序集的 2.0 和 4.0 版本之间存在一些冲突,包括 mscorlib 和 System.Data。 2.0 版本都被Microsoft.VisualStudio.QualityTools.UnitTestFramework 10.0 版本引用。我将这些引用升级到 10.1,但该版本仍引用这些程序集的 2.0 版。我不知道这是否相关/相关。

【问题讨论】:

    标签: .net .net-assembly sql-server-data-tools


    【解决方案1】:

    事实证明,程序集问题的原因与将 .NET Target 框架版本更改为 4.6.1 而不是 4.5.2 有关。

    【讨论】:

    • 你能详细说明一下吗?是您更改的测试项目的.net 目标框架吗?正在测试的项目?两者都有?
    • 这是测试项目的版本。我认为数据库项目没有框架目标版本?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-20
    • 2017-03-15
    • 1970-01-01
    • 1970-01-01
    • 2016-04-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多