다음을 통해 공유


사전 또는 사후 처리 스크립트 만들기

애플리케이션이 배포될 때 작업을 수행하는 스크립트를 만든 다음 배포 프로세스 중에 실행할 시기를 정의할 수 있습니다. 환경 변수를 사용하여 코드를 구분하여 설치 및 정리 코드를 동일한 스크립트에 포함할 수 있습니다. 명령줄 인수를 스크립트에 전달할 수도 있습니다.

주의

항상 무음 모드에서 운영 시스템을 위한 스크립트를 작성해야 합니다. 사용자 입력을 기다리는 스크립트로 인해 입력이 수신될 때까지 BizTalk 데이터베이스가 잠기고 액세스할 수 없게 되기 때문입니다.

배포하는 동안 스크립트가 실행되는 시기 지정

스크립트를 System.BizTalk:PreProcessingScript(사전 처리 스크립트) 또는 System.BizTalk:PostProcessingScript(사후 처리 스크립트)로 추가하여 애플리케이션에 스크립트를 추가할 때 스크립트가 실행되는 시기를 지정합니다.

사전 및 사후 처리 스크립트는 다음과 같이 실행됩니다.

  • 사전 처리 스크립트는 가져오기 또는 설치 프로세스의 시작 부분에서 실행됩니다.

  • 사후 처리 스크립트는 가져오기 또는 설치 프로세스가 끝날 때 실행됩니다.

  • 제거하는 동안 모든 스크립트는 설치 중에 실행되는 반대 순서로 실행됩니다. 따라서 사후 처리 스크립트는 제거가 시작될 때 실행되고 제거가 끝날 때 스크립트를 미리 처리합니다.

  • 설치에 실패하면 적절한 롤백 작업을 사용하여 스크립트가 역순으로 호출됩니다.

    호출되면, 사전 또는 사후 처리 스크립트는 환경 변수가 배포 상태를 나타내는 방법에 설명된 대로 환경 변수 BTAD_ChangeRequestAction, BTAD_InstallMode, 그리고 BTAD_HostClass를 확인하여 실행 중인 배포 상태(설치, 가져오기, 삭제, 제거, 가져오기 롤백 또는 설치 롤백)를 결정합니다. 변수에 대한 참조 정보는 사전 및 사후 처리 스크립트 환경 변수를 참조하세요.

    애플리케이션에 스크립트를 추가하는 방법에 대한 지침은 애플리케이션에 사전 또는 사후 처리 스크립트를 추가하는 방법을 참조하세요.

비고

이 항목의 뒷부분에서 설명한 대로 스크립트에 명령줄 인수를 포함하려면 AddResource 명령을 사용하여 스크립트를 추가해야 합니다.

지원되는 스크립트 파일 확장명입니다.

지원되는 스크립트 파일 확장명은 .com, .exe, .bat, .cmd, .vbs, .vbe, .js, .jse, .wsf 및 .wsh입니다. 이 확장 집합은 PATHEXT 환경 변수에 정의됩니다.

로깅 오류

오류를 파일에 기록하도록 각 스크립트를 구성하는 것이 가장 좋습니다. 이는 Windows Installer가 스크립트에서 생성된 오류를 기록하지 않기 때문입니다. 스크립트가 실행된 후 이러한 로그에서 해결해야 하는 오류를 확인해야 합니다.

오류가 발생한 시기를 확인하는 데 도움이 되도록 로그 파일에 날짜와 시간을 포함할 수 있습니다.

다음 코드를 사용하여 로그 파일을 지정한 다음 오류를 기록합니다.

Set LogFile=<full path of log file>

echo %DATE% %TIME% <text> >> %LogFile%

다음 예제에서는 공개 키 토큰이 정의되지 않은 경우 지정된 로그 파일에 항목이 만들어집니다. 로그 파일에서 날짜와 시간은 "공개 키를 스크립트로 설정해야 합니다."라는 텍스트와 동일한 줄로 작성됩니다.

set LogFile=C:\ScriptLog.txt

set PublicKeyToken=e5fd0ea4ecd37420

if not defined PublicKeyToken (

echo %DATE% %TIME% Public key should be set in script >> %LogFile%

스크립트에 exit /b 1 줄을 추가하면 Windows Installer에 대한 오류 코드가 생성되어 롤백됩니다.

다음 예제에서 공개 키 토큰이 정의되지 않은 경우 스크립트는 Windows Installer에 오류를 반환하고 설치 관리자는 롤백합니다.

set LogFile=C:\ScriptLog.txt

set PublicKeyToken=e5fd0ea4ecd37420

if not defined PublicKeyToken (

echo %DATE% %TIME% Public key should be set in script >> %LogFile%

exit /b 1

동일한 스크립트에 설치 및 정리 코드 포함

스크립트는 설치 및 제거 중에 반대 순서로 실행되므로 조건문 내에 동일한 스크립트에 설치 및 정리 코드를 포함할 수 있습니다. 예를 들어 다음과 같이 설치 모드를 확인하는 조건문 내에 설치 코드를 배치할 수 있습니다.

  
%BTAD_ChangeRequestAction%=Update AND %BTAD_InstallMode%=Install  
  

다음과 같이 설치 모드를 확인하는 조건문 내에서 정리 코드를 한정할 수 있습니다.

  
%BTAD_ChangeRequestAction%=Delete AND %BTAD_InstallMode%=Uninstall  
  

명령줄 인수 전달

BTSTask AddResource 명령을 사용하여 애플리케이션에 스크립트를 추가할 때 다음 매개 변수를 지정하여 명령줄 인수를 스크립트에 전달할 수 있습니다. 이렇게 하면 스크립트가 호출될 때 인수가 스크립트에 전달됩니다.

/Property:Args="argument list"

비고

사전 또는 사후 처리 스크립트가 여러 개 있고 애플리케이션에 있는 경우 특정 순서로 실행되지 않습니다.

중요합니다

스크립트는 가져오기와 동일한 트랜잭션에 등록되지 않으므로 스크립트, 특히 가져오기 중에 실행되는 스크립트에서 BTSTask 명령을 사용하면 안 됩니다.

AddResource 명령을 사용하여 애플리케이션에 스크립트를 추가하는 방법에 대한 지침 은 AddResource 명령: 전처리 스크립트를 참조하세요. AddResource 명령: 사후 처리 스크립트도 참조하세요.

또한 참조하십시오

사전 및 사후 처리 스크립트를 사용하여 애플리케이션 배포 사용자 지정
템플릿(애플리케이션 배포 샘플)