很长一段时间以来,我们已经使用ReadyRoll.MSBuild NuGet 包。ReadyRoll 不再是 ReadyRoll 的事件,它仍在定期更新并与最新的 SCA 插件一起工作。它包含相同的构建扩展,并且可以在我们的构建代理上完美运行,无需安装任何东西。最大的问题是 .sqlproj 文件中没有 nuget 支持,这使得添加/更新包有点棘手:https ://documentation.red-gate.com/rr1/installing/build-components
SQL 变更自动化文档不包含此部分,因此很难确定它会保持多长时间。
为了完整起见,从今天开始添加到您的 .sqlproj 的属性:
<ReadyRollNuGetBaseFolder>$(MSBuildThisFileDirectory)..\packages</ReadyRollNuGetBaseFolder>
<ReadyRollNuGetIsRestored Condition="$([System.IO.Directory]::GetDirectories($(ReadyRollNuGetBaseFolder), 'ReadyRoll.MSBuild.*').Length) != 0">True</ReadyRollNuGetIsRestored>
<SqlChangeAutomationTargetsPath Condition="$(ReadyRollNuGetIsRestored) == 'True'">$([System.IO.Directory]::GetDirectories($(ReadyRollNuGetBaseFolder), 'ReadyRoll.MSBuild.*')[0])\tools\ReadyRoll.Data.Schema.SSDT.targets</SqlChangeAutomationTargetsPath>