2016-06-20 11 views
3

以前は、環境固有の設定値と属性を設定するコードを手動で展開するときにweb.configトランスフォームを使用しました。私は、環境特有のマニュアルビルドからリリース管理による複数の環境に展開された単一のTFS 2015ビルドに移行しています。 web.configで設定された環境固有のアプリケーション設定値はトークン化されます。 This methodは基本的にビルドプロセス中に設定値にトークンを挿入します。配備されると、トークンは、一致するリリース定義構成値に置き換えられます。TFS 2015リリース管理でweb.configが変更される

この方法では、非設定の設定属性が不十分です。これらの変換の例は次のとおりです。

<httpCookies requireSSL="true" xdt:Transform="Insert" /> 
<compilation xdt:Transform="RemoveAttributes(debug)" /> 
<httpRuntime xdt:Transform="RemoveAttributes(executionTimeout,maxRequestLength,useFullyQualifiedRedirectUrl,minFreeThreads,minLocalRequestFreeThreads,appRequestQueueLimit,enableVersionHeader)"/> 
<httpRuntime enableVersionHeader="false" maxRequestLength="12288" xdt:Transform="SetAttributes"/> 
<customErrors mode="On" xdt:Transform="SetAttributes"/> 

リリース時にこれらの属性を更新する最も良い方法は何ですか?

答えて

6

Web Deploy's parameters.xml methodとトランスフォームの両方をリリース管理で使用できます。変換はビルドからトリガされ、パブリッシュによって作成されたトークンを置換するプロセスはリリース管理によってトリガされます。ビルド時の変換をトリガするために

は、あなたはこの次のいずれかの方法で行うことができます。

  1. ビルド

    /p:UseWPP_CopyWebApplication=true /p:PipelineDependsOnBuild=false

  2. 中に発生する変換を強制するために、次のMSBuildのパラメータを追加します。
  3. MSDeployパッケージオプションを使用してパブリッシュプロファイルを作成し、次のMSBuildパラメータを使用してビルドでパッケージをトリガします。

    /p:DeployOnBuild=true /p:PublishProfile=[nameOfProfile]

上記のいずれかの方法は、通常のWeb.config XDTの実行になります。他のXMLファイルを変換する必要がある場合は、まずSlowCheetahをインストールする必要があります。

トークン

を交換して、パラメータ今、あなたはXDTの実行とビルドアーティファクトを持っていることを、あなたはリリース管理からtoken replacementWinRM tasksを使用することができます。これらは、ビルドからWeb Deployパッケージを取り出し、展開する前にSetParametersコマンドを実行します。そのトリックは、まずSetParameters.xmlファイルを取り出し、最初にRelease環境変数を交換してトークンを置き換えます。

2

ユーザー相撲は、適切な答えを与えたが、私は代わり方法の何に関連するいくつかのコメントを記録したいです。

IMHO考慮する設定のさまざまなカテゴリがありますが、例を挙げましょう。各環境でデータベース接続文字列が変更されますが、すべてのテスト環境および運用環境でSSLを有効にする必要があります。 この観点では、ビルド時には伝統的に、デバッグ/リリースビルドと呼ばれる設定をできるだけ早く適用する必要があります。フィーチャートグルなどのランタイム設定まで、環境に左右されます。

私の見解では、単一のツールまたは複数のツールを使用できますが、それに応じて適切に設定を分類することが重要です。

関連する問題