我在一个使用偶尔更新的各种类库的网站上工作。其中一个库是一个sqlproj文件,我相信它是用VS2010制作的。它是其他库的依赖项,我无法构建/重建我的解决方案因为我不断收到此错误,因此DLL不会生成。当我第一次在VS2013中打开项目时,我会在浏览器中打开一个迁移报告。但移民说它很成功。当我尝试构建项目时,我收到错误:
错误1 02019:/ target的目标类型无效:必须指定'exe','winexe','library','module','appcontainerexe'或'winmdobj'CSC
我试图按照基本相同的问题对这个问题提出一些建议,但都没有成功。 Project fails to load due to missing SqlServer.targets file after upgrading to Visual Studio 2013在这个问题中似乎还有一些未解决的问题。
任何帮助都会很棒。很高兴提供更多细节和/或编辑问题,使其更加通用化。提前致谢。
虽然Project fails to load due to missing SqlServer.targets file after upgrading to Visual Studio 2013中没有一个答案对我有用,而且Stack Overflow上没有其他人有想法,但事实证明这是与Visual Studio 2013和SSDT(SQL Server开发人员工具)中的向后兼容性相关的错误。这个论坛的评论解决了我的问题:
https://connect.microsoft.com/SQLServer/feedbackdetail/view/979839
由bsclifton于2014年11月15日上午7:18发布
社区2013版也有这个问题;转到工具 - >扩展和更新并更新“用于数据库工具的Microsoft SQL Server更新”解决了问题:)
我在.sqlproj中的VS2017上有相同的错误消息。它有助于在.targets文件中添加DefaultTargets参数。
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="SetDacVersionToAssemblyVersion" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
<Target Name="SetDacVersionToAssemblyVersion" AfterTargets="CoreCompile" Condition=" '$(EnableDacVersionFromAssembly)' == 'True' ">
<GetAssemblyIdentity AssemblyFiles="$(IntermediateTargetFullFileName)">
<Output TaskParameter="Assemblies" PropertyName="IntermediateTargetAssembly" />
</GetAssemblyIdentity>
<PropertyGroup>
<DacVersion>$(IntermediateTargetAssembly.Split(',')[1].Split('=')[1])</DacVersion>
</PropertyGroup>
</Target>
</Project>
根据其他堆栈工作流程线程上的建议更改了.sqlproj文件。为我工作。
导入标记中$(MSBuildToolsPath)到$(MSBuildBinPath)