ファイル変換タスク

このタスクは、構成ファイルとパラメーターファイルにファイル変換と変数置換を適用する場合に使用します。 変換の処理方法の詳細については、「 ファイル変換と変数の置換のリファレンス」を参照してください。

重要

このタスクは web パッケージを対象としており、web パッケージファイルが必要です。スタンドアロンの json ファイルでは機能しません。

ファイル変換

  • 現在のファイル変換は、XML ファイルでのみサポートされています。

  • XML 変換を構成ファイル (* .config) に適用するには、次の構文を使用して、変換ファイルの規則の改行区切りリストを指定する必要があります。

    -transform <path to the transform file> -xml <path to the source file> -result <path to the result file>

  • ファイル変換は、多くのシナリオで役立ちます。特に、App service にデプロイするときに、標準の Web.config 変換構文に従って、さまざまな環境 (開発、テスト、運用など) の構成を追加、削除、または変更する場合に便利です。

  • また、この機能を使用して、コンソールまたは Windows サービスアプリケーションの構成ファイル (FabrikamService.exe.config など) を含む他のファイルを変換することもできます。

  • 構成ファイルの変換は、変数の置換の前に実行されます。

変数の置換

  • 現時点では、変数の置換では XML および JSON ファイル形式のみがサポートされています。

  • ターゲット構成ファイルで定義されたトークンが更新され、変数の値に置き換えられます。

  • 変数の置換は、構成ファイルの変換後に実行されます。

  • 変数の代入は、オブジェクト階層で事前に定義された JSON キーに対してのみ適用されます。 新しいキーは作成されません。

使用例

パターン .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"
    }
  }
}

注意

置換では、ビルドパイプラインとリリースパイプラインで定義されたカスタム変数のみが使用されます。 既定とシステムのパイプライン変数は除外されます。

現在除外されているプレフィックスの一覧を次に示します。

  • ' agent '
  • ' azure_http_user_agent '
  • ' ビルド '
  • ' common '
  • ' release. '
  • ' system. '
  • ' tf_ '

リリースパイプラインとステージの両方で同じ変数が定義されている場合、ステージで定義された変数は、パイプラインで定義された変数よりも優先されます。

参照:ファイルの変換と変数の置換のリファレンス

確認要求

なし

YAML スニペット

# File transform
# Replace tokens with variable values in XML or JSON configuration files
- task: FileTransform@1
  inputs:
    #folderPath: '$(System.DefaultWorkingDirectory)/**/*.zip' 
    #enableXmlTransform: # Optional
    #xmlTransformationRules: '-transform **\*.Release.config -xml **\*.config-transform **\*.$(Environment.Name).config -xml **\*.config' # Optional
    #fileType: # Optional. Options: xml, json
    #targetFiles: # Optional

引数

引数 説明
パッケージまたはフォルダー
folderPath
パッケージまたはフォルダーへのファイルパス。 変数 (Build |リリース)、ワイルドカードがサポートされています。 たとえば、「 $(System.DefaultWorkingDirectory)/*/.zip 」のように入力します。 Zip 形式のフォルダーの場合、コンテンツは一時保存場所、実行された変換、および結果が元の成果物の場所に抽出されます。
XML 変換
enableXmlTransform
このオプションを有効にすると、以下で指定したルールに基づいて XML 変換が適用されます。 構成の変換は、変数の置換の前に実行されます。 XML 変換は、Windows プラットフォームでのみサポートされています。
変換規則
Xmlトランスルール
構文を使用して、変換ファイルルールの改行区切りリストを指定します。
-transform <path to the transform file> -xml <path to the source configuration file> -result <path to the result file>
結果ファイルのパスは省略可能であり、指定されていない場合、ソース構成ファイルは変換された結果ファイルに置き換えられます。
ファイル形式
fileType
置換を実行するファイル形式を指定します。 変数の代入は、構成変換の後に実行されます。 For XML では、ビルドまたはリリースパイプラインで定義された変数は、任意の構成ファイルと parameters.xml ファイルの appSettings、applicationSettings、および connectionStrings セクションのトークン ('キー' または '名前') のエントリと照合されます。
ターゲットファイル
targetFiles
変数の置換に使用するファイルの改行区切りリストを指定します。 ファイル名は、ルートフォルダーに対して相対的に指定する必要があります。

ソースを開く

このタスクは、 GitHubのオープンソースです。 フィードバックと投稿が歓迎されます。