FileTransform@2 - 檔案轉換 v2 工作

使用此工作將權杖取代為 XML 或 JSON 組態檔中的變數值。

Syntax

# 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 。 針對壓縮的資料夾,內容會擷取到 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,在組建或發行管線中定義的變數將會與 key 任何組態檔和 的 appSettingsapplicationSettings 和 區 connectionStrings 段中的 或 nameparameters.xml 專案進行比對。

變數替代會在組態轉換之後執行。

注意:只有建置/發行管線中定義的自訂變數會用於替代。 排除預設/系統定義的管線變數。 如果在發行管線和階段中定義相同的變數,則階段變數會取代發行管線變數。


工作控制選項

除了工作輸入之外,所有工作都有控制選項。 如需詳細資訊,請參閱 控制項選項和一般工作屬性

輸出變數

無。

備註

檔案轉換第 2 版的新功能:

  • 更優化的工作欄位,可讓使用者在單一工作實例中啟用任何/所有轉換 (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 金鑰。 它不會建立新的金鑰。

注意

只有建置和發行管線中定義的自訂變數會用於替代。 預設和系統管線變數會排除。

以下是目前排除前置詞的清單:

  • 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、傳統組建、傳統版本
執行于 Agent、DeploymentGroup
要求
Capabilities 此工作不符合作業中後續工作的任何需求。
命令限制 任意
Settable 變數 任意
代理程式版本 所有支援的代理程式版本。
工作類別 公用程式

另請參閱