Asp.net-Mvc
缺少 Microsoft.Data.Tools.Schema.Sql.UnitTesting。再次
該錯誤非常古老,但 MS 到目前為止還沒有修復它。
我有一個 VS2015 解決方案(許多項目,主要是 ASP.NET 一個),我在 VS 2017 中打開了它。
這是我在嘗試建構它時看到的:
所以,我想,好吧,有些引用壞了,我進入項目引用,刪除了這兩個(…Sql.UnitTesting 和…Tools.Components),並嘗試將它們添加回來。我看到了什麼?當然,這個:
版本錯誤,它的15.1.0.0而不是以前的15.0.0.0(對於兩個 DLL)。大不了,你說,但它仍然無法編譯:
它告訴我版本不匹配,我必須在 web.config 文件中創建一些程序集綁定。我做了,首先是手動的,然後按照它的建議點兩下警告。什麼都沒有改變。我仍然無法建構我的項目。
以前的 SO 問題(自動引用 Microsoft.Data.Tools.Schema.Sql.UnitTesting,VS2010 上的 Microsoft.VisualStudio.TestTools.UnitTesting 命名空間在哪裡?)沒有多大幫助,我無法刪除 SSDT 組件,因為它破壞了完全載入網路項目。而且我的項目不是任何類型的 SQL 測試項目。它只是一個普通的 ASP.NET 4 Web 應用程序。
我能做些什麼來解決這個問題?
選擇否,身份和路徑應該會自動解析。
在您的測試項目文件中,刪除以下程式碼:
<Import Project="$(SQLDBExtensionsRefPath)\Microsoft.Data.Tools.Schema.Sql.UnitTesting.targets" Condition="'$(SQLDBExtensionsRefPath)' != ''" /> <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.Sql.UnitTesting.targets" Condition="'$(SQLDBExtensionsRefPath)' == ''" /> <PropertyGroup> <SsdtUnitTestVersion>2.0</SsdtUnitTestVersion> </PropertyGroup>並將其替換為:
<ItemGroup Condition="$(VisualStudioVersion) == '15.0'"> <Reference Include="Microsoft.Data.Tools.Schema.Sql, Version=13.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> <HintPath>$(SSDTPath)\Microsoft.Data.Tools.Schema.Sql.dll</HintPath> <Private>True</Private> </Reference> <Reference Include="Microsoft.Data.Tools.Schema.Sql.UnitTesting, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> <HintPath>$(SSDTUnitTestPath)\Microsoft.Data.Tools.Schema.Sql.UnitTesting.dll</HintPath> <Private>True</Private> </Reference> <Reference Include="Microsoft.Data.Tools.Schema.Sql.UnitTestingAdapter, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> <HintPath>$(SSDTUnitTestPath)\Microsoft.Data.Tools.Schema.Sql.UnitTestingAdapter.dll</HintPath> <Private>True</Private> </Reference> </ItemGroup> <PropertyGroup> <SsdtUnitTestVersion>3.1</SsdtUnitTestVersion> </PropertyGroup> <Import Project="$(SQLDBExtensionsRefPath)\Microsoft.Data.Tools.Schema.Sql.UnitTesting.targets" Condition="$(VisualStudioVersion) != '15.0' And '$(SQLDBExtensionsRefPath)' != ''" /> <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.Sql.UnitTesting.targets" Condition="$(VisualStudioVersion) != '15.0' And '$(SQLDBExtensionsRefPath)' == ''" />這是根據官方的 microsoft dev 社區幫助執行緒here。
雖然對我來說沒有用。必須在 ssdt 版本周圍添加屬性組標籤。您可能希望根據項目配置保留或刪除它。




