该错误非常古老,但到目前为止,MS尚未修复。

我有一个VS2015解决方案(许多项目,其中有一个主要的ASP.NET),然后在VS 2017中打开了它。

这是我尝试构建它时看到的内容:

所以,我想,好吧,有些引用被打破了,我进入了项目引用,删除了这两个(... Sql.UnitTesting和... Tools.Components),并试图将它们重新添加回去。我看到了什么?当然,这是:

版本是错误的,其 15.1.0.0 而不是以前的 15.0.0.0 (对于两个DLL)。您说,没什么大不了的,但是它仍然不能编译:

它告诉我版本不匹配,我必须在web.config文件中创建一些程序集绑定(bind)。 我手动执行了,然后按照提示通过双击警告。 不变。我仍然无法获得我的项目。

之前的SO问题(Automatic reference to Microsoft.Data.Tools.Schema.Sql.UnitTestingWhere is the Microsoft.VisualStudio.TestTools.UnitTesting namespace on VS2010?)并没有太大帮助,我无法删除SSDT组件,因为它完全破坏了Web项目的加载。而且我的项目不是任何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开发人员社区帮助线程here进行的。

虽然对我来说,它没有用。必须在ssdt版本周围添加属性组标签。您可能要根据项目配置保留或删除它。

关于asp.net-mvc - 缺少Microsoft.Data.Tools.Schema.Sql.UnitTesting。再次,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44603822/

10-10 18:18