【发布时间】:2017-07-03 19:43:52
【问题描述】:
我有一个源 DacPac 和一个目标 DacPac。使用 powershell 我想比较两者并生成升级脚本。只要存在有效的连接字符串,这本身对于所有使用 DacServices 的情况都很简单。但是,对于我的 CD 管道,我不知道最终的连接字符串,也不想知道。我想要的只是让脚本生成 SQL。
我用 sqlpackage.exe 尝试了这个,通过发送 args 如下
$args = @(
"/a:Script",
"/sf:$PathToDacpacSource",
"/tf:$PathToDacpacTarget",
"/op:$outputFile",
"/tdn:$TargetDatabaseName"
)
这很好用。到目前为止,我通过 [Microsoft.SqlServer.DacFx.x64] 仅向 DacServices 添加了一个依赖项,但是无法在没有连接字符串的情况下生成脚本,这迫使我通过 [Microsoft.Data. Tools.Msbuild] 也是
DacServices 的构造函数都需要ConnectionString
有没有其他人遇到过类似的情况和解决办法?
或者您是否在部署端专门使用 SQLPackage 来解决此问题?
【问题讨论】:
标签: powershell msbuild sql-server-data-tools