该错误非常古老,但到目前为止,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.UnitTesting,Where 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/