다음을 통해 공유


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 일치 keyparameters.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 이 작업은 작업의 후속 작업에 대한 요구 사항을 충족하지 않습니다.
명령 제한 사항 모두
설정 가능한 변수 모두
에이전트 버전 지원되는 모든 에이전트 버전.
작업 범주 유틸리티

추가 정보