オプション#1 /#3について少し詳しく説明し、それらを比較することができます。前の回答は、PackageWebで複数回ビルドする必要があるという点で正確ではなく、1回だけビルドする必要があります。
オプション1:Parameters.xmlおよびSetParameters.xml
このアプローチでは、追加のWeb配置パラメーターを宣言するparameters.xmlファイルをWebプロジェクトに作成します。
Web配置パッケージをビルドすると、parameters.xmlで宣言されたパラメーターがパッケージに作成されます。このWebデプロイパッケージが作成されると、web.configファイルはビルド構成に基づいて変換されます(現在はプロファイル固有の変換も可能です)。
そのパッケージとsetparameters.xmlを使用して、Web配置パラメーター値を指定するパッケージを公開できます。さまざまなsetparameters.xmlファイルを作成し、それを同じパッケージと一緒に使用して、複数の宛先に公開できます。この手法を使用して公開するには、VSが生成するdeploy.cmdを使用するか、正しいパラメーターのセットを使用してmsdeploy.exeを呼び出します。
オプション3:PackageWeb
PackageWebは、パッケージプロセスを拡張して、Web配置パッケージを作成するときに、web.config変換がパッケージと、変換を実行できるアセンブリに含まれるようにします。
これに加えて、Webデプロイパッケージを作成すると、publish-interactive.ps1ファイルが生成されます。このファイルを使用して、パッケージを公開できます。プロンプトが表示されます。適用されるweb.config変換、Web配置パラメーター値、およびWeb配置エンドポイント情報自体。公開を実行すると、指定した値がに保存されpublish-configuration.ps1.readme
ます。.readmeを削除すると、publish-interactive.ps1はそのファイルの値を使用して公開を自動化します。設定に使用するファイルを指定することもできます。
Web配置パッケージがVSによって作成されたときにparameters.xmlファイルを作成した場合、その結果、Web配置パラメーターがパッケージに含まれます。PackageWebはそれらをピックアップし、それらについてもプロンプトを表示します。
では、これらのアプローチの違いは何ですか?
オプション#1では、パッケージに含まれるweb.configはすでに変換されています。ファイルを再度変換する機会はありません。どちらのアプローチでも、ニーズに合うようにWebデプロイパラメータ値を指定できます。XMLの大きなチャンクをある環境から別の環境に変更する場合は、web.config変換が役立つ場合があります。したがって、PackageWebの方が適している可能性があります。
オプション#1では、SetParameters.xmlファイルを手動で作成する必要があります。PackageWebを使用すると、WhatIfオプションを使用してプロセスを実行できます。値の入力を求められ、設定ファイルが作成されます。
両方のアプローチを簡単に自動化できます。PackageWebは、基本的にparameters.xml / setparameters.xml手法に基づいて構築されており、機能のスーパーセットを提供します。
可動部品の数を最小限に抑えて物事をできるだけシンプルにしたい場合は、必要に応じてmsdeploy.exeを直接呼び出すことができるため、オプション#1をお勧めします。
公開の自動化を簡素化し、標準のコマンドプロンプトよりもPowerShellを使用したい場合は、PackageWebを試してください。
PackageWebのhttp://sedodream.com/2012/03/14/PackageWebUpdatedAndVideoBelow.aspxに5分間のビデオがあります。Webデプロイパッケージを公開している場合は、試してみることをお勧めします。それがあなたのニーズを満たさない場合は、私たちが後でPackageWebで学んだことをより正式な方法で使用する可能性があるので、私に知らせてください。