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의 경우 빌드 또는 릴리스 파이프라인에 정의된 변수는 구성 파일 및 의 , applicationSettings
및 섹션에 있는 appSettings
또는 name
항목과 connectionStrings
일치 key
parameters.xml
합니다.
변수 대체는 구성 변환 후에 실행됩니다.
참고: 빌드/릴리스 파이프라인에 정의된 사용자 지정 변수만 대체에 사용됩니다. 기본/시스템 정의 파이프라인 변수는 제외됩니다. 릴리스 파이프라인 및 스테이지에서 동일한 변수가 정의되면 스테이지 변수가 릴리스 파이프라인 변수를 대체합니다.
작업 제어 옵션
모든 작업에는 작업 입력 외에 제어 옵션이 있습니다. 자세한 내용은 컨트롤 옵션 및 일반적인 작업 속성을 참조하세요.
출력 변수
없음
설명
파일 변환 버전 2의 새로운 기능:
- 사용자가 단일 작업 인스턴스에서 XML(모든 변환), 변수 대체(JSON 및 XML) 기능을 사용하도록 설정할 수 있는 더 최적화된 작업 필드입니다.
- 구성된 변환/대체가 적용되지 않거나 작업이 실행되지 않을 때 작업이 실패합니다.
이 작업을 사용하여 구성 및 매개 변수 파일에 파일 변환 및 변수 대체를 적용합니다. 번역 처리 방법에 대한 자세한 내용은 파일 변환 및 변수 대체 참조를 참조하세요.
중요
이 작업은 웹 패키지용이며 웹 패키지 파일이 필요합니다. 독립 실행형 JSON 파일에서는 작동하지 않습니다.
파일 변환
- 현재 파일 변환은 XML 파일에 대해서만 지원됩니다.
- 구성 파일(*.config)에 XML 변환을 적용하려면 구문을 사용하여 줄 바꿈으로 구분된 변환 파일 규칙 목록을 지정해야 합니다.
-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"
}
}
}
요구 사항
요구 사항 | Description |
---|---|
파이프라인 유형 | YAML, 클래식 빌드, 클래식 릴리스 |
실행 중 | 에이전트, DeploymentGroup |
요청 | 없음 |
Capabilities | 이 작업은 작업의 후속 작업에 대한 요구 사항을 충족하지 않습니다. |
명령 제한 사항 | 모두 |
설정 가능한 변수 | 모두 |
에이전트 버전 | 지원되는 모든 에이전트 버전. |
작업 범주 | 유틸리티 |