【问题标题】:Why does the SqlPublish target fail for a SQL Server 2014 database project?为什么 SQL Server 2014 数据库项目的 SqlPublish 目标失败?
【发布时间】:2014-08-11 15:44:58
【问题描述】:

我的机器有当前(2014 年 3 月)版本的 SSDT、Visual Studio 2012 Professional 和 SQL Server 2014 Developer。我有一个针对 SQL Server 2014 的 SQL Server 项目(我们称之为MyProject.sqlproj)。我尝试了以下操作:

MsBuild.exe MyProject.sqlproj 
            /t:SqlPublish /p:SqlPublishProfilePath=Somewhere.publish.xml

这会失败并出现以下错误:

部署错误部署 72002:内部错误。
具有类型的数据库平台服务 Microsoft.Data.Tools.Schema.Sql.Sql120DatabaseSchemaProvider 不是 有效的。您必须确保服务已加载,或者您必须提供 有效数据库平台服务的完整类型名称。

如果我将此项目切换到目标 2012(并指向 2012 实例),则相同的命令会成功运行。我之前问过一个可能相关的question,那里的答案解决了我的问题,但这不是这里的问题——如果我直接使用SqlPackage.exe,我可以成功发布这个2014 DACPAC。

发生了什么,我该如何解决?

【问题讨论】:

  • 您是从 VS2012 开发人员命令提示符还是从常规命令提示符/其他环境运行 MSBuild?你的机器上也安装了VS2010吗?最可能的原因是未设置 VisualStudioVersion 环境变量,在这种情况下,.sqlproj 文件当前默认针对 VS2010 版本。在运行 MSBuild 之前尝试调用“set VisualStudioVersion=11.0”,看看是否能解决问题。
  • 啊哈!是的,我确实安装了 VS 2010,并从常规命令提示符运行它。在执行之前调用“set VisualStudioVersion=11.0”!
  • 很好,问题解决了:)
  • 谢谢@KevinCunnane——如果你想添加这个作为答案,我很乐意接受。

标签: msbuild sql-server-data-tools sql-server-2014


【解决方案1】:

这里的问题是没有设置 VisualStudioVersion 环境变量,在这种情况下,.sqlproj 文件当前默认针对 VS2010 版本(不支持 SQL Server 2014)。在运行 MSBuild 之前调用“set VisualStudioVersion=11.0”将解决此问题。

【讨论】:

  • 我认为我有同样的问题,我在本地使用 SQL Server 2012 Express,在远程使用 SQL Server 2008。我正在开发并尝试发布 Asp.net MVC 5 项目。我使用 VS2013 时一切都很好。升级到 VS2015 后,我开始遇到同样的错误。我在哪里可以更改 VisualStudioVersion 环境?
  • 我们可以在哪里设置VisualStudioVersion 变量,而不是在运行MSBuild 之前在命令行中设置它?
猜你喜欢
  • 2023-04-11
  • 1970-01-01
  • 2020-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多