升级到Visual Studio 2013后,我发现在尝试打开解决方案时无法加载旧的SQL项目。显示的错误是:
找不到导入的项目“C:\ Program Files(x86)\ MSBuild \ 12.0 \ bin \ SqlServer.targets”。确认声明中的路径是否正确,以及该文件是否存在于磁盘上。 C:\一些\路径\为\项目\ 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.targets
复制C:\Windows\Microsoft.NET\Framework\v3.5
到C:\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:值“数据库”对于选项'target'无效)
希望这可以帮助!
我有同样的问题,我解决了这个问题:只需在'C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319'上创建一个名为'SQLServer.targets'的文件,其中包含以下内容:
<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>
祝好运。
我发布了一个特定的问题(C# VS 2013 Error 02019: Invalid target type for /target: must specify 'exe', 'winexe', 'library', 'module', 'appcontainerexe' or 'winmdobj' CSC),关于克里斯托恩在Vladimir Dronov的回答下描述的致命构建错误:
错误1 02019:/ target的目标类型无效:必须指定'exe','winexe','library','module','appcontainerexe'或'winmdobj'CSC
通过遵循此论坛中的建议,我能够摆脱VS2013社区版中与SQL Server开发工具兼容性问题相关的错误:
https://connect.microsoft.com/SQLServer/feedbackdetail/view/979839
由bsclifton于2014年11月15日上午7:18发布
社区2013版也有这个问题;转到工具 - >扩展和更新并更新“用于数据库工具的Microsoft SQL Server更新”解决了问题:)
如果这对您不起作用,我建议您查看该论坛,因为它提供了其他一些有关如何解决问题的建议
如果项目是.csproj文件,则应检查Visual Studio是否在升级时生成.sqlproj文件。如果是这种情况,您可以将其添加到解决方案中。
您可以尝试更改.sqlproj文件中的以下行:
<Import Project="$(MSBuildToolsPath)\SqlServer.targets" />
至
<Import Project="$(MSBuildBinPath)\SqlServer.targets" />
在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 \”。