FileTransform@2 - ファイル変換 v2 タスク
このタスクを使用して、トークンを XML または JSON 構成ファイルの変数値に置き換えます。
構文
# File transform v2
# Replace tokens with variable values in XML or JSON configuration files.
- task: FileTransform@2
inputs:
folderPath: '$(System.DefaultWorkingDirectory)/**/*.zip' # string. Required. Package or folder. Default: $(System.DefaultWorkingDirectory)/**/*.zip.
#xmlTransformationRules: '-transform **\*.Release.config -xml **\*.config' # string. XML Transformation rules. Default: -transform **\*.Release.config -xml **\*.config.
# Variable Substitution
#jsonTargetFiles: # string. JSON target files.
#xmlTargetFiles: # string. XML target files.
入力
folderPath
- パッケージまたはフォルダー
string
. 必須です。 既定値: $(System.DefaultWorkingDirectory)/**/*.zip
。
パッケージまたはフォルダーへのファイル パス。
変数は ビルド と リリースです。 ワイルドカードを利用できます。
たとえば、「 $(System.DefaultWorkingDirectory)/**/*.zip
」のように入力します。 zip 形式のフォルダーの場合、コンテンツは TEMP の場所に抽出され、変換が実行され、結果は元の成果物の場所に圧縮されます。
xmlTransformationRules
- XML 変換ルール
string
. 既定値: -transform **\*.Release.config -xml **\*.config
。
という構文を使用して、改行で区切られた変換ファイル ルールの一覧を提供します -transform <pathToTransformFile> -xml <pathToSourceConfigurationFile>
。 結果ファイルのパスは省略可能であり、指定しない場合、ソース構成ファイルは変換された結果ファイルに置き換えられます。
jsonTargetFiles
- JSON ターゲット ファイル
string
.
変数の値を置き換えるファイルの改行で区切られたリストを提供します。 ファイル名は、ルート フォルダーを基準にして指定されます。
たとえば、次のサンプルの の ConnectionString
値を置き換えるには、ビルドまたはリリース パイプライン (またはリリース パイプラインの環境) で として Data.DefaultConnection.ConnectionString
変数を定義する必要があります。
{
"Data": {
"DefaultConnection": {
"ConnectionString": "Server=(localdb)\SQLEXPRESS;Database=MyDB;Trusted_Connection=True"
}
}
}
変数の置換は、構成の変換後に実行されます。
注: 代わりに使用されるのは、ビルド/リリース パイプラインで定義されているカスタム変数のみです。 既定またはシステム定義のパイプライン変数は除外されます。 リリース パイプラインとステージで同じ変数が定義されている場合、ステージ変数はリリース パイプライン変数よりも優先されます。
xmlTargetFiles
- XML ターゲット ファイル
string
.
変数の値を置き換えるファイルの改行で区切られたリストを提供します。 ファイル名は、ルート フォルダーを基準にして指定されます。
XML の場合、ビルドまたはリリース パイプラインで定義されている変数は、任意の構成ファイルと parameters.xml
の 、、および セクションの applicationSettings
appSettings
または name
エントリとconnectionStrings
照合されますkey
。
変数の置換は、構成の変換後に実行されます。
注: 置換では、ビルド/リリース パイプラインで定義されているカスタム変数のみが使用されます。 既定またはシステム定義のパイプライン変数は除外されます。 リリース パイプラインとステージで同じ変数が定義されている場合、ステージ変数はリリース パイプライン変数よりも優先されます。
タスク コントロール のオプション
すべてのタスクには、タスク入力に加えて制御オプションがあります。 詳細については、「 コントロール オプションと一般的なタスク プロパティ」を参照してください。
出力変数
[なし] :
解説
ファイル変換バージョン 2 の新機能:
- ユーザーが 1 つのタスク インスタンスで変換 (XML)、変数置換 (JSON および XML) 機能の一部またはすべてを有効にできるようにする、より最適化されたタスク フィールド。
- 構成された変換/置換のいずれかが適用されていない場合、またはタスクが操作なしの場合、タスクは失敗します。
このタスクを使用して、構成ファイルとパラメーター ファイルにファイル変換と変数置換を適用します。 翻訳の処理方法の詳細については、「 ファイル変換と変数置換リファレンス」を参照してください。
重要
このタスクは Web パッケージを対象としており、Web パッケージ ファイルが必要です。 スタンドアロンの JSON ファイルでは機能しません。
ファイル変換
- 現時点では、ファイル変換は XML ファイルでのみサポートされています。
- XML 変換を構成ファイル (*.config) に適用するには、構文を使用して、改行で区切られた変換ファイル規則の一覧を指定する必要があります。
-t ransform <path to the transform file> -xml <path to the source file> -result <path to the result file>
- ファイル変換は、多くのシナリオで役立ちます。特に App Service にデプロイしていて、標準の Web.config変換構文に従って、さまざまな環境 (開発、テスト、Prod など) の構成を追加、削除、または変更する場合です。
- この機能を使用して、コンソールや Windows サービス アプリケーション構成ファイル (例:
FabrikamService.exe.config
) などの他のファイルを変換することもできます。 - 構成ファイル変換は、変数の置換の前に実行されます。
変数の置換
- 現時点では、変数の置換では XML と JSON のファイル形式のみがサポートされています。
- ターゲット構成ファイルで定義されているトークンが更新され、変数値に置き換えられます。
- 変数の置換は、構成ファイル変換の後に実行されます。
- 変数の置換は、オブジェクト階層で定義済みの JSON キーにのみ適用されます。 新しいキーは作成されません。
Note
代わりに、ビルド パイプラインとリリース パイプラインで定義されているカスタム変数のみが使用されます。 既定のパイプライン変数とシステム パイプライン変数は除外されます。
現在除外されているプレフィックスの一覧を次に示します。
agent.
azure_http_user_agent
build.
common.
release.
system.
tf_
リリース パイプラインとステージの両方で同じ変数が定義されている場合、ステージ定義変数はパイプライン定義変数よりも優先されます。
例
パターン .Production.config
を使用して という名前のすべての構成ファイルで XML 変換を実行する必要がある場合は、変換規則を次のように指定する必要があります。
-transform **\*.Production.config -xml **\*.config
パイプライン内のステージ名に基づいて という名前の構成ファイルがある場合は、次の値を使用できます。
-transform **\*.$(Release.EnvironmentName).config -xml **\*.config
入れ子または階層構造の JSON 変数を置き換える場合は、JSONPath 式を使用して指定します。
たとえば、次のサンプルの ConnectionString の値を置き換えるには、ビルドまたはリリース パイプライン (またはリリース パイプライン内のステージ) で 変数 Data.DefaultConnection.ConnectionString
を 定義する必要があります。
{
"Data": {
"DefaultConnection": {
"ConnectionString": "Server=(localdb)\SQLEXPRESS;Database=MyDB;Trusted_Connection=True"
}
}
}
要件
要件 | 説明 |
---|---|
パイプラインの種類 | YAML、クラシック ビルド、クラシック リリース |
実行日 | エージェント、DeploymentGroup |
確認要求 | なし |
Capabilities | このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。 |
コマンドの制限 | Any |
設定可能な変数 | Any |
エージェントのバージョン | サポートされているすべてのエージェント バージョン。 |
タスクのカテゴリ | ユーティリティ |