我想知道是否有人可以通过告诉我在这里失踪的东西来帮助我保持理智。背景首先。
我们在TC中有5个数据库项目,每个项目都有一个构建步骤,然后是部署步骤。这5个项目中有4个完美地构建和部署。
第五个但是构建正常,但在部署到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中运行时,发布文件也能正常工作。
我已经检查了有效的项目和这个项目之间的部署设置,我能看到的唯一区别在于预期的数据库名称。
有没有人知道这可能是由什么造成的以及我如何解决它。如果需要,我有日志和截图。
感谢您花时间阅读本文。
尼克
答案 0 :(得分: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
答案 1 :(得分:0)
在我的情况下,.NET版本上的SQLCLR在项目属性中有所不同。感谢@Gavin指出正确的方向。 并更正了“兼容性级别”