Sql-Server

SSMS 2017 在部署期間更改 SSIS 包版本

  • April 12, 2018

採取的步驟,可以重現:

  • 在 SSDT 2012 中開發 SSIS 包,項目部署模型。
  • 將項目部署到伺服器 A,SQL Server 2012。包版本 internal.packages 為 6。
  • 將項目從伺服器 A 部署到伺服器 B,SQL Server 2012。包版本 internal.packages 在伺服器 B 上為 8。

如果我從 SSDT 2012 直接部署到兩台伺服器沒有問題,但從 SSMS 2017 部署會增加版本號。

有沒有辦法在 SSMS 2017 項目部署期間阻止這種情況發生?有人遇到過這種情況麼?

我並不感到驚訝,但我自己沒有測試過。

項目部署模型包是使用 ISDeploymentWizard.exe 部署的,並且每個版本的 SQL Server 都有一個版本關聯(並且有點複雜)。例如,這裡的一台筆記型電腦安裝了 VS 2013/2015 和 SSDT for 2012/2014/2016。如果我尋找那個執行檔,我會看到

  • C:\Program Files (x86)\Microsoft SQL Server\130\DTS\Binn\ISDeploymentWizard.exe
  • C:\Program Files (x86)\Microsoft SQL Server\120\DTS\Binn\ISDeploymentWizard.exe
  • C:\Program Files (x86)\Microsoft SQL Server\140\DTS\Binn\ISDeploymentWizard.exe
  • C:\Program Files\Microsoft SQL Server\120\DTS\Binn\ISDeploymentWizard.exe

我的新機器只有 2017 年的位,看起來像

  • C:\Program Files (x86)\Microsoft SQL Server\140\DTS\Binn\ISDeploymentWizard.exe
  • C:\Program Files\Microsoft SQL Server\140\DTS\Binn\ISDeploymentWizard.exe

考慮到這一切的另一件事是,使用較新版本的 SSIS 工具(ISDeploymentWizard、dtexec、dtutil)將很高興地將您的版本向前滾動以匹配其版本。這對於作為顧問來升級事物很有幫助,但是當您想使用新工具來處理舊程式碼時,這就是魔鬼。

我的猜測是 SSMS 預設為不在 120 文件夾中的 ISDeploymentWizard。不幸的是,我在部署嚮導中沒有看到用於解決版本的參數。

/Silent[+|-]                  Default value:'-' (short form /S)
/SourceType:{File|Server}     Default value:'File' (short form /ST)
/ModelType:{Project|Package}  Default value:'Project' (short form /MT)
/SourcePath:<string>          (short form /SP)
/SourceServer:<string>        (short form /SS)
/Packages:<string>            (short form /PK)
/ProjectPassword:<string>     (short form /PP)
/DestinationServer:<string>   (short form /DS)
/DestinationPath:<string>     (short form /DP)
/SkipSource[+|-]              Default value:'-'
@<file>                       Read response file for more options

你最好的,但令人討厭的,賭注是

  • 保留一份用於部署的 SQL Server 2012 的 SSMS 副本
  • 從 SSDT 2012 部署
  • 從顯式定義源 exe 的命令行部署

最後一個選項實際上是那麼糟糕。使用 GUI 點擊部署,但在此螢幕上,停止

在此處輸入圖像描述

該突出顯示的框是可選擇/可複制的。去做。已為您建構了命令行部署(不包括“命令行:”部分)

因此你會有類似的東西

"C:\...\1XX\DTS\BINN\ISDeploymentWizard.exe" /SILENT /SourcePath:"C:\MyProject.ispac" /DestinationServer:"localhost" /DestinationPath:"/SSISDB/Folder/Project/MyProject"

引用自:https://dba.stackexchange.com/questions/203775