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
任何組態檔和 的 appSettings
、 applicationSettings
和 區 connectionStrings
段中的 或 name
parameters.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 變數 | 任意 |
代理程式版本 | 所有支援的代理程式版本。 |
工作類別 | 公用程式 |