0

我在Visual Studio 2013中創建了一個數據庫項目,用於創建一個dacpac文件並將其部署到使用SQL Server Management Studio的SQL Server上。我可以成功部署SQL Server 2012中的dacpac但是當我試圖把它的SQL Server 2008 R2上部署,我獲得選擇DAC包時出現以下錯誤信息:在使用VS13創建的SQL Server 2008 R2上部署dacpac的問題數據庫項目

<DacType xmlns='http://schemas.microsoft.com/sqlserver/dac/Serialization/2012/02'> was not expected. (es3ttafd) 

我已經選擇了「SQL Server 2008的」作爲項目設置下的目標平臺,但這似乎並未修改名稱空間。當我解壓dacpac時,我可以看到這個命名空間存在於DacMetadata.xml,model.xml和Origin.xml文件中。

有什麼我可以做的,以停止在dacpac中包含該名稱空間(或將其更改爲正確的名稱空間?)以允許我將它部署到SQL Server 2008上?我可以通過VS在SQL Server上成功發佈項目,但是我希望能夠創建一個dac包,並使用嚮導將其部署到其他服務器上。

謝謝。

回答

1

我懷疑你使用的是舊版本的SQL Server Management Studio部署到SQL Server 2008.我建議下載最新的SSMS(可在此獲得:https://msdn.microsoft.com/en-us/library/mt238290.aspx)並使用它進行發佈。

或者,最新版本的數據層應用程序框架(可在這裏:https://www.microsoft.com/en-us/download/details.aspx?id=53876)包括SqlPackage.exe,可用於發佈dacpac文件,像這樣:

SqlPackage.exe /a:publish /tcs:"Data Source=SERVER;Initial Catalog=DBNAME;Integrated Security=true" /sf:C:\project\mydb.dacpac 

查看文檔爲SqlPackage.exe在這裏:https://msdn.microsoft.com/en-us/library/hh550080(v=vs.103).aspx

+0

謝謝史蒂文。我試過使用SSMS16,它工作。我在發佈之前曾試過SSMS14,但它仍然無法正常工作,所以我認爲它與SSMS版本無關,但與VS項目的輸出結果無關。但是對於像VS那樣創建的DacType命名空間沒有修復(儘管目標平臺設置爲SQL Server 2008)? – Kyris

+0

很高興聽到它現在正在工作。我不確定爲什麼SSMS 2014會給出有關該xml命名空間的錯誤。上下文是SQL Server 2008工具生成的dacpac文件的文件格式與SQL Server 2012(和更新的)工具不同。舊的工具無法識別新的文件格式,但SSMS 2014應該沒有VS2013生成的dacpac文件格式的問題。 –

相關問題