升级到 Visual Studio 2013 后,我发现当我尝试打开解决方案时,旧的 SQL 项目无法加载。显示的错误是:

找不到导入的项目“C:\Program Files (x86)\MSBuild\12.0\bin\SqlServer.targets”。确认声明中的路径正确,并且该文件存在于磁盘上。C:\Some\Path o\Project\Database.sqlproj

在我的 .sqlproj 文件我有一行

<Import Project="$(MSBuildToolsPath)\SqlServer.targets" />

在 Visual Studio 2012 中解析为 C:\Windows\Microsoft.NET\Framework\v4.0.30319\SqlServer.targets 但在 Visual Studio 2013 中这解决了 C:\Program Files (x86)\MSBuild\12.0\bin\SqlServer.targets. 。但是,那 SqlServer.targets 文件不位于这两个位置。

据推测,这是由于 MSBuild 成为 Visual Studio 的一部分,而不是 .Net Framework 的一部分。

有谁知道如何解决此问题并将此项目迁移到 Visual Studio 2013?

有帮助吗?

解决方案

当我尝试在 VS 2013 下构建 VS 2010 解决方案时,我遇到了同样的问题。修复方法是先将解决方案文件升级到 VS 2013。之后,无需进一步修改即可运行。

其他提示

刚刚复制的 SqlServer.targetsC:\Windows\Microsoft.NET\Framework\v3.5C:\Program Files (x86)\MSBuild\12.0\Bin 这很有帮助。VS2013现在可以打开旧项目了。

从 Visual Studio 2008 升级到 2013 时,我遇到了类似的问题。花了一段时间,但我必须(再次)安装 VS 2013 的 SSDT,然后我创建了一个新的数据库项目来找出新 sqlserver.targets 文件的相对路径。应该是这样的:

  <Import Condition="'$(SQLDBExtensionsRefPath)' != ''" Project="$(SQLDBExtensionsRefPath)\Microsoft.Data.Tools.Schema.SqlTasks.targets" />
  <Import Condition="'$(SQLDBExtensionsRefPath)' == ''" Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets" />

我发现修复此错误的最大障碍是尝试理解提供的错误消息(BC2014:值“database”对于选项“target”无效)

希望这可以帮助!

我有同样的问题,我是这样解决的:只需创建一个名为 'SQLServer.targets' 在 'C:\Windows\Microsoft.NET\Framework\v4.0.30319' 包含以下内容:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

    <PropertyGroup>
           <SqlClrTargetsFullPath>$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\TeamData\Microsoft.Data.Schema.SqlClr.targets</SqlClrTargetsFullPath>
    </PropertyGroup>

    <Import Project="$(SqlClrTargetsFullPath)" Condition="Exists('$(SqlClrTargetsFullPath)')"/>
</Project>

祝你好运。

在 Windows 10 中打开旧项目时也会发生这种情况

在 Windows 10 上的 Visual Studio 2010 中打开旧的 SQL Server CLR 程序集时,我遇到了同样的问题(未找到 SqlServer.targets), 最初用于编写程序集的相同版本.

已确认同一项目在 Windows 7 计算机上的 Visual Studio 2010 中完美打开。

解决方案

请注意错误消息。就我而言,是:

找不到导入的项目“C:\Windows\Microsoft.NET\Framework\v4.0.30319\SqlServer.targets”。确认声明中的路径正确,并且该文件存在于磁盘上。

只需将 SqlServer.targets 从 Vladimir Dronov 的答案“C:\Windows\Microsoft.NET\Framework\v3.5\SqlServer.targets”中指示的位置复制到错误消息中指示的目录即可。

就我而言,这是“C:\Windows\Microsoft.NET\Framework\v4.0.30319\”。

由其中几种解决方案导致的错误

我发布了一个具体问题(C# VS 2013 错误 02019:/target 的目标类型无效:必须指定“exe”、“winexe”、“库”、“模块”、“appcontainerexe”或“winmdobj” CSC)关于 Chris Torng 在 Vladimir Dronov 的回答下描述的致命构建错误:

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


修复方法

通过遵循本论坛中的建议,我能够摆脱 VS2013 社区版中与 SQL Server 开发工具兼容性问题相关的错误:

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

由 bsclifton 发表于 11/15/2014 at 7:18 AM

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

如果这对您不起作用,我建议您查看该论坛,因为它提供了有关如何解决问题的其他一些想法

解决方案一:

如果项目是 .csproj 文件,则应检查 Visual Studio 在升级时是否也生成了 .sqlproj 文件。如果是这种情况,您可以将其添加到解决方案中。

解决方案2:

您可以尝试更改 .sqlproj 文件中的以下行:

<Import Project="$(MSBuildToolsPath)\SqlServer.targets" />

<Import Project="$(MSBuildBinPath)\SqlServer.targets" />
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top