1

我在一个网站上工作,该网站使用偶尔更新的各种类库。其中一个库是一个 sqlproj 文件,我相信它是用 VS2010 制作的。它是其他库的依赖项,我无法构建/重建我的解决方案,因为我不断收到此错误,因此不会生成 DLL。当我第一次在 VS2013 中打开项目时,我会在浏览器中打开一份迁移报告。但是迁移表明它是成功的。当我尝试构建项目时,出现错误:

错误 1 ​​02019:/target 的目标类型无效:必须指定“exe”、“winexe”、“library”、“module”、“appcontainerexe”或“winmdobj” CSC

我已经尝试在基本相同的问题上遵循有关此问题的一些建议,但没有成功。升级到 Visual Studio 2013 后,由于缺少 SqlServer.targets 文件,项目无法加载似乎该问题中也有一些未解决的流。

任何帮助都会很棒。很高兴提供更多详细信息和/或编辑问题以使其更加概括。提前致谢。

4

3 回答 3

2

虽然升级到 Visual Studio 2013 后由于缺少 SqlServer.targets 文件,Project中的所有答案都无法加载,但没有其他人对 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 更新”解决了这个问题:)

于 2015-10-13T19:27:18.380 回答
1

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

导入标记中的 $(MSBuildToolsPath) 到 $(MSBuildBinPath)

于 2018-10-25T13:57:35.923 回答
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>
于 2017-12-05T13:44:21.813 回答