2017-02-14 80 views
4

我有一個來自VS 2015的數據庫單元測試項目。我現在正在測試VS 2017 RC。Microsoft.Data.Tools.Schema.Sql.UnitTesting程序集的組件衝突解決方案

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從Reference Paths項目屬性中刪除了舊文件夾,並將其指向2017位置。

我有一個與Microsoft.Data.Tools.Components程序集類似的問題,但它通過在項目屬性中指定Specific Version = False(奇怪的是...)來解決。

如果我從該項目中刪除該引用,該項目將生成但會警告找不到該程序集的15.0版。在這種情況下,測試甚至可以運行並通過。只要解決方案是開放的,這隻會持續下去。關閉並重新打開後,「引用」列表中將重新顯示「不良」引用。

Screen shot of References list of database project after loading

編輯:我已經運行asmspy和檢測的系統組件,包括mscorlib程序和System.Data 2.0和4.0版本之間的一些衝突。 2.0版本全部參考Microsoft.VisualStudio.QualityTools.UnitTestFramework版本10.0。我將這些引用升級到10.1,但該版本仍然引用這些程序集的版本2.0。我不知道這是否相關/相關。

回答

0

事實證明,組裝問題的原因與將.NET目標框架版本更改爲4.6.1而不是4.5.2有關。