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.
#enableXmlTransform: true # boolean. XML transformation. Default: true.
#xmlTransformationRules: '-transform **\*.Release.config -xml **\*.config' # string. Optional. Use when enableXmlTransform == true. XML Transformation rules. Default: -transform **\*.Release.config -xml **\*.config.
# Variable Substitution
#jsonTargetFiles: # string. JSON target files.
#xmlTargetFiles: # string. XML target files.
# 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 の場所に抽出され、変換が実行され、結果は元の成果物の場所に圧縮されます。
XML 変換 を
boolean
. 既定値: true
.
構成変換は変数置換の前に実行されます。
XML 変換は、Windows プラットフォームでのみサポートされます。
XML 変換規則 を
string
. 随意。
enableXmlTransform == true
するときに使用します。 既定値: -transform **\*.Release.config -xml **\*.config
.
-transform <pathToTransformFile> -xml <pathToSourceConfigurationFile>
という構文を使用して、変換ファイル規則の改行で区切られた一覧を提供します。 結果ファイルのパスは省略可能であり、指定しない場合、ソース構成ファイルは変換された結果ファイルに置き換えられます。
XML 変換規則 を
string
. 既定値: -transform **\*.Release.config -xml **\*.config
.
-transform <pathToTransformFile> -xml <pathToSourceConfigurationFile>
という構文を使用して、変換ファイル規則の改行で区切られた一覧を提供します。 結果ファイルのパスは省略可能であり、指定しない場合、ソース構成ファイルは変換された結果ファイルに置き換えられます。
JSON ターゲット ファイル を
string
.
変数値に置き換えるファイルの改行区切りリストを提供します。 ファイル名は、ルート フォルダーを基準にして指定されます。
たとえば、次のサンプルの ConnectionString
の値を置き換えるには、ビルドまたはリリース パイプライン (またはリリース パイプラインの環境) で Data.DefaultConnection.ConnectionString
変数を定義する必要があります。
{
"Data": {
"DefaultConnection": {
"ConnectionString": "Server=(localdb)\SQLEXPRESS;Database=MyDB;Trusted_Connection=True"
}
}
}
変数の置換は、構成の変換後に実行されます。
注: 代わりに使用されるのは、ビルド/リリース パイプラインで定義されているカスタム変数のみです。 既定またはシステム定義のパイプライン変数は除外されます。 リリース パイプラインとステージで同じ変数が定義されている場合、ステージ変数はリリース パイプライン変数よりも優先されます。
XML ターゲット ファイル を
string
.
変数値に置き換えるファイルの改行区切りリストを提供します。 ファイル名は、ルート フォルダーを基準にして指定されます。
XML の場合、ビルドまたはリリース パイプラインで定義されている変数は、構成ファイルと parameters.xml
の appSettings
、applicationSettings
、および connectionStrings
セクションの key
または name
エントリと照合されます。
変数の置換は、構成の変換後に実行されます。
注: 置換では、ビルド/リリース パイプラインで定義されているカスタム変数のみが使用されます。 既定またはシステム定義のパイプライン変数は除外されます。 リリース パイプラインとステージで同じ変数が定義されている場合、ステージ変数はリリース パイプライン変数よりも優先されます。
タスク コントロールのオプション
すべてのタスクには、タスク入力に加えて制御オプションがあります。 詳細については、「コントロール オプションと一般的なタスク プロパティを参照してください。
出力変数
何一つ。
備考
ファイル変換バージョン 2 の新機能:
- 1 つのタスク インスタンスで、変換 (XML)、変数置換 (JSON、XML) 機能のいずれかまたはすべてを有効にできる、より最適化されたタスク フィールド。
- 構成された変換/置換のいずれかが適用されていない場合、またはタスクが no-op場合、タスクは失敗します。
このタスクを使用して、構成ファイルとパラメーター ファイルにファイル変換と変数置換を適用します。 翻訳の処理方法の詳細については、「ファイル変換と変数置換のリファレンスを参照してください。
大事な
このタスクは 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 キーにのみ適用されます。 新しいキーは作成されません。
手記
代わりに使用されるのは、ビルド パイプラインとリリース パイプラインで定義されたカスタム変数のみです。 既定のパイプライン変数とシステム パイプライン変数は除外されます。
現在除外されているプレフィックスの一覧を次に示します。
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 |
の需要 | 何一つ |
機能の | このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。 |
コマンドの制限 | 任意 |
設定可能な変数 | 任意 |
エージェントのバージョン | サポートされているすべてのエージェント バージョン。 |
タスク カテゴリ | 効用 |