2

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

我们在 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 中运行时,发布文件也可以正常工作。

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

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

感谢您抽时间阅读。

网卡

4

2 回答 2

2

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

这个msdn 线程中有一些细节。

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

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

于 2016-11-17T13:13:54.560 回答
0

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

于 2019-11-28T13:10:51.907 回答