SQL Dacpac 部署使用 SqlPackage 和 DropObjectsNotInSource 与 DoNotDropUsers

SQL Dacpac Deploy using SqlPackage and DropObjectsNotInSource with DoNotDropUsers

我在 CI 构建中 运行ning SqlPackage 以部署 dacpacs 并使用 /Profile 开关传入 publish.xml 文件。我在配置文件中设置了以下三个选项:

<DropObjectsNotInSource>True</DropObjectsNotInSource>
<DoNotDropPermissions>True</DoNotDropPermissions>
<DoNotDropUsers>True</DoNotDropUsers>

然而,当我 运行 部署 dacpac 时,它仍然试图删除我的用户。有什么想法吗?

SqlPackage.exe 在处理发布配置文件时存在(不幸的)错误,因此不支持 DoNotDrop 和 Exclude 选项。这将在即将发布的 SqlPackage.exe 版本中得到修复。与此同时,您是否尝试过使用此 SqlPackage.exe 命令行参数?

/p:DoNotDropObjectTypes=Permissions;Users

检查 SqlPackage.exe 上的时间戳和版本。你可能打错电话了。

支持 DoNotDrop 和 Exclude 选项的版本应标记为 7/30/2015 3:04AM,版本为 12.0.3021.1,位于此处: C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC0

另一个(不支持这些设置)标记为 3/28/2014 10:56pm,版本为 12.0.1294.0,位于 C:\Program Files (x86)\Microsoft SQL Server0\DAC\bin