【发布时间】: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