Microsoft.Data.Tools.Schema.Sql.UnitTesting程序集的程序集冲突解决方案

时间:2017-02-14 23:47:25

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

我有一个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程序集。即使我在项目属性中设置了特定版本= True,它也会继续这样做。

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

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

如果从项目中删除引用,则项目构建但警告无法找到程序集的15.0版。在那种情况下,测试甚至可以运行并通过。只有解决方案开放时才会持续。一旦我关闭并重新打开它,"坏"引用重新出现在参考文献列表中。

Screen shot of References list of database project after loading

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

1 个答案:

答案 0 :(得分:-1)

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