SQL Dacpac使用SqlPackage和DropObjectsNotInSource与DoNotDropUsers一起部署

时间:2016-02-11 18:02:20

标签: sql-server deployment dacpac

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

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

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

2 个答案:

答案 0 :(得分:3)

(遗憾的是)SqlPackage.exe处理发布配置文件存在一个错误,因此DoNotDrop和Exclude选项不受尊重。这将在即将推出的SqlPackage.exe版本中修复。在此期间您是否尝试过使用此SqlPackage.exe命令行参数?

/p:DoNotDropObjectTypes=Permissions;Users

答案 1 :(得分:1)

检查SqlPackage.exe上的时间戳和版本。你可能会说错了。

将尊重DoNotDrop和Exclude选项的那个应该标记为7/30/2015 3:04 AM,版本为12.0.3021.1并且位于: C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ Extensions \ Microsoft \ SQLDB \ DAC \ 120

另一个(不遵守这些设置)标记为2014年3月28日下午10:56,版本为12.0.1294.0,位于 C:\ Program Files(x86)\ Microsoft SQL Server \ 120 \ DAC \ bin