【问题标题】:Database Deployment - An error occurred during deployment plan generation. Deployment cannot continue数据库部署 - 生成部署计划期间发生错误。部署无法继续
【发布时间】:2016-11-16 09:14:32
【问题描述】:

我想知道是否有人可以通过告诉我我在这里缺少什么来帮助我保持理智。先说背景。

我们在 TC 中有 5 个数据库项目,每个项目都有一个构建步骤,然后是一个部署步骤。这 5 个项目中有 4 个项目构建和部署完美。

第 5 次构建正常,但在部署到其 SQL Server 期间引发以下错误;


“*** 生成部署计划时出错。部署无法继续。”

Element 或 Annotation 类 PersistedResolvableAnnotation 不包含 Property 类 Length。

[08:32:52][Exec] C:\TeamCity\BuildAgent3\work\c3c1bdeecddf68ca.Build\dbdeploy_single.proj(9, 5): 错误 MSB3073: 命令 ""C:\Program Files (x86) \Microsoft SQL Server\120\DAC\Bin\sqlpackage.exe" /Action:Publish /sf:"../DB-ExampleData/ExampleData/bin/Release/ExampleData.dacpac" /pr:"../DB-ExampleData /ExampleData/UAT.publish.xml" /TargetServerName:IP.IP.IP.111" 以代码 1 退出。


在我的调查中,我将 UAT.publish.xml 与一个有效的文件进行了比较,它们看起来完全相同。我已经尝试过 Windows 身份验证和 SQL 身份验证,这也没有什么区别。从 Visual Studio 中运行时,发布文件也可以正常工作。

我已经检查了工作项目和这个项目之间的部署设置,我能看到的唯一区别是预期的数据库名称。

有没有人知道这可能是由什么引起的以及我如何解决它。如果需要,我有日志和屏幕截图。

感谢您花时间阅读本文。

网卡

【问题讨论】:

  • 问题似乎与 sqlpackage 相关,当调用 dacpac 时,无论发布文件如何,它都会给出错误。其他直接用 sqlpackage 完成的部署都是成功的。我不知道如何解决它,所以我将尝试确保它是最新版本(如果我能找到下载链接)。

标签: database continuous-integration sql-server-data-tools teamcity-9.1


【解决方案1】:

看起来您的构建服务器具有与 Visual Studio 使用的不同版本的 sqlpackage(即 DacFX),并且您的五个项目中只有一个包含两个版本“不同”处理的任何功能。

这个msdn thread有一点细节。

简而言之,我将在构建服务器上更新 DacFX,并确保构建作业调用位于

中的 sqlpackage.exe

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\130

【讨论】:

    【解决方案2】:

    在我的情况下,.NET 版本的 SQLCLR 在项目属性中是不同的。感谢@Gavin 指出正确的方向。 并更正了“兼容性级别”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多