2017-02-14 31 views
4

У меня есть проект тестирования блока базы данных от VS 2015. Теперь я тестирую VS 2017 RC.Разрешение конфликтов сборки для Microsoft.Data.Tools.Schema.Sql.UnitTesting assembly

Существует конфликт сборки с сборкой Microsoft.Data.Tools.Schema.Sql.UnitTesting, и я не уверен, как ее решить. GAC имеет версию 15.0 этой сборки. В составе SSDT VS 2017 версия 15.1 доступна, но не в GAC.

Я пробовал перенаправление сборки в app.config, но это не помогло.

Я пробовал специально просматривать папку C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\Extensions\Microsoft\SQLDB и выбирать там сборку в качестве ссылки. Однако он вернулся к сборке GAC. Он продолжал это делать, даже когда я установил в свойствах проекта определенную версию = True.

Я уже удалил старую папку с SSDT из свойства проекта Reference Paths и указал ее на местоположение 2017.

У меня была аналогичная проблема с сборкой Microsoft.Data.Tools.Components, но она была решена путем указания Specific Version = False (как ни странно ...) в свойствах проекта.

Если я удаляю ссылку из проекта, проект строится, но предупреждает, что версия 15.0 сборки не найдена. В этом случае тесты даже выполняются и проходят. Это продолжается только до тех пор, пока решение открыто. Когда я закрываю и снова открываю его, в списке «Ссылки» снова появляются «плохие» ссылки.

Screen shot of References list of database project after loading

EDIT: Я побежал asmspy и обнаруживает некоторые конфликты между 2.0 и 4.0 версий системных сборок, в том числе и mscorlib System.Data. На версии 2.0 все ссылаются на Microsoft.VisualStudio.QualityTools.UnitTestFramework версии 10.0. Я обновил эти ссылки до 10.1, но эта версия все еще ссылается на версию 2.0 этих сборок. Я не знаю, связано это/релевантно.

ответ

0

Оказалось, что причина сбоя сборки связана с изменением версии платформы .NET Target до 4.6.1 вместо 4.5.2.