2013-05-23 1 views
1

Ofiicial Microsoft 문서는 여러 곳에서 "설치 스크립트"를 참조합니다. 원수 예, here :MSI의 "설치 스크립트"란 무엇입니까?

대신 설치 프로그램이 설치 스크립트로 사용자 지정 작업을 기록합니다.

나는 조심스럽게 MSDN 및 MSI에 대한 몇 권의 책을 검토 한 - 그리고 그것은 MSI 엔진에 관련이 방법이 installation script, 무엇인지에 대한 명확한 정의를 찾을 수와 정확히

설치 스크립트가 될 수 얼마나 그것은이 installation script에 대한

는 몇 가지 정의하고, 문서를 작성하고있는 설치 세션의 외부 실행 또는 약간의 문서화되지 않은입니다서지 목적으로 만 참조되는 엔진 내부 구조

+0

이 문서는 http://unattended.sourceforge.net/installers.php 도움이 될 또한 포함 : 당신이 원하는 경우 사용이 Sheild 설치 MSI/EXE 설치 프로그램을 개발하십시오. 어디에서 얻을 수있는 링크 : http://www.flexerasoftware.com/products/installshield.htm –

+2

이것은 Windows Installer가 작동하는 방식에 대한 기본적인 이론을 설명하는 매우 중요한 질문입니다.InstallShield는 Windows Installer 위에 위치하며 질문에 대답하지 않는 저작 도구입니다. 나는 설치자를 쓴 더 많은 사람들이 그러한 질문을하는 호기심을 갖기를 바랍니다. –

답변

2

Windows Installer는 선언적 (vs imperative) 프로그래밍 언어입니다. 일부 언어로 "스크립트"를 작성하는 대신 테이블 데이터를 사용하여 설치를 표현합니다. 예를 들어 테이블 고려 : -> 기능 구성 요소 -

기능을 구성 요소 -Directory

구성 요소 -> 파일 주어진 기능이 설치되어있는 경우, 여기에 속한 구성 요소가 필요 당신은 MSI를 말하고있다

을 설치할 것. 구성 요소가 설치되면 디렉토리를 만들어야하고 파일을 복사해야합니다. 설치 관리자가 롤백하면 파일과 디렉토리를 제거해야합니다.

이 그러한 CreateFolders 및 InstallFiles 등 다양한 표준 행동에 의해 처리됩니다. 우리는 이것을 수행하기위한 스크립트를 작성하지 않습니다.

하지만 사실 스크립트가 있습니다. 런타임시 Windows Installer 자체에서 생성됩니다. 기계 상태를 수정하는 모든 표준 행동의 내부에 두 개의 서로 다른 단계 :

스크립트 생성 - 설치주의 깊게 수행해야 할 것을 고려하고 동적으로

스크립트 실행 수행 할 작업 목록을 생성 - 설치를 이제 해당 스크립트가 실행 중입니다. 참고 :이 좋아하는 설치 프로그램을 로그인하고 InstallFiles 작업을 위해 그것을 통해 찾기 시작

InstallFinalize를

의 내부에서 발생합니다. 두 단계가 표시됩니다.

이것은 맞춤 동작을 작성할 때 매우 중요합니다. 주제에 대한 더 많은 내용은 다음을 참조하십시오

Installation Phases and In-Script Execution Options for Custom Actions in Windows Installer

+0

고마워요! "설치 스크립트가 작성된 설치 세션 외부에서 실행될 수있는"조건은 무엇입니까? – grigoryvp

+0

물론 지연된 실행 사용자 지정 작업이 그 예입니다. 테이블을 쿼리하고, 구성 요소 동작 상태를 평가하고, 지연된 사용자 지정 동작으로 마샬링되는 데이터 집합을 생성하는 기능을 가진 즉각적인 실행 권한을가집니다. 그런 다음 지연된 데이터 집합 (CustomActionData)을 처리하고 로그에 쓸 수만 있습니다. –

관련 문제