web-dev-qa-db-ja.com

SSMS 2017の展開中のSSISパッケージバージョンの変更

実行した手順は、再現できます。

  • 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でのプロジェクトの展開中に発生しないようにする方法はありますか?他の誰かがこれに遭遇しましたか?

2
saarrrr

私は驚いていませんが、自分でテストしていません。

プロジェクト配置モデルパッケージはISDeploymentWizard.exeを使用して配置され、SQL Serverの各バージョン(およびビット数)に関連付けられたバージョンがあります。たとえば、ここの1つのラップトップにはVS 2013/2015がインストールされ、2012/2014/2016のSSDTがインストールされています。その実行可能ファイルを探すと、

  • 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

これらすべてを考慮に入れるもう1つのことは、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を使用してデプロイメントをクリックしますが、この画面で停止します

enter image description here

その強調表示されたボックスは選択可能/コピー可能です。それを行う。コマンドラインのデプロイが組み込まれています(「コマンドライン:」と書かれている部分を除く)

したがって、あなたは次のようなものを持っているでしょう

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