C#VS 2013错误02019:/ target的目标类型无效:必须指定'exe','winexe','library','module','appcontainerexe'或'winmdobj'CSC

时间:2015-09-18 19:03:22

标签: c# visual-studio-2010 visual-studio-2013 csproj sqlproj

我在一个使用偶尔更新的各种类库的网站上工作。其中一个库是一个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在这个问题中似乎还有一些未解决的问题。

任何帮助都会很棒。很高兴提供更多细节和/或编辑问题,使其更加通用化。提前谢谢。

3 个答案:

答案 0 :(得分:2)

虽然Project fails to load due to missing SqlServer.targets file after upgrading to Visual Studio 2013中没有一个答案对我有用,而且没有其他人在Stack Overflow上有想法,但事实证明这是与Visual Studio 2013和SSDTs中的向后兼容性相关的错误(SQL Server开发人员工具) )。这个论坛的评论解决了我的问题:

https://connect.microsoft.com/SQLServer/feedbackdetail/view/979839

  

发布者:bsclifton于11/15/2014上午7:18

     

社区2013版也有这个问题;转到工具 - >扩展和更新并更新“用于数据库工具的Microsoft SQL Server更新”解决了该问题:)

答案 1 :(得分:0)

我在.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>

答案 2 :(得分:0)

根据其他堆栈工作流线程上的建议,已更改以下.sqlproj文件。为我工作。

在导入标记中将$(MSBuildToolsPath)转换为$(MSBuildBinPath)