2016-02-11 21 views
3

我在CI構建中運行SqlPackage以部署dacpacs並使用/ Profile開關傳遞publish.xml文件。我有以下三個選項在配置文件中設置:SQL Dacpac使用SqlPackage和DropObjectsNotInSource與DoNotDropUsers部署

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

然而,當我運行dacpac部署它仍試圖將我的用戶。有任何想法嗎?

回答

3

SqlPackage.exe處理髮布配置文件時(不幸)有一個錯誤,因此DoNotDrop和Exclude選項不受尊重。這將在即將推出的SqlPackage.exe版本中得到修復。在此期間,您是否嘗試過使用此SqlPackage.exe命令行參數?

/p:DoNotDropObjectTypes=Permissions;Users 
+0

您是否有參考MS Connect或其他類似微軟公衆對此錯誤的確認? –

+1

SSDT團隊博客上有關於此問題的聲明已在SqlPackage.exe中修復:https://blogs.msdn.microsoft.com/ssdt/2016/04/15/sql-server-data-tools-preview-update - 用於四月-2016 / –

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 \擴展\微軟\ SQLDB \ DAC \ 120

另一種(不兌現這些設置)打上2014年3月28日下午10時56分,版本12.0.1294.0,是在 C:\程序文件(x86)\ Microsoft SQL Server \ 120 \ DAC \ bin