패치 제거

Windows Installer 버전 3.0부터 전체 애플리케이션 및 기타 패치를 제거하고 다시 설치하지 않고도 단일로 어떤 순서로든 제거할 수 있는 패치를 만들고 설치할 수 있습니다. Windows Installer 3.0을 사용하면 패치 시퀀싱 정보가 포함된 MsiPatchSequence 테이블패치 패키지를 작성할 수도 있습니다. Windows Installer 3.0 이전 버전의 Windows Installer에서 애플리케이션에서 특정 패치를 제거하는 유일한 방법은 패치가 적용된 전체 애플리케이션을 제거한 다음 패치를 다시 적용하지 않고 다시 설치하는 것입니다.

패치를 제거할 수 있는지 여부는 패치를 작성한 방법, 패치를 설치하는 데 사용된 Windows Installer 버전 및 애플리케이션에 대한 패치의 변경 내용에 따라 달라집니다. 패치가 제거 불가가 아닌 경우 패치를 제거하는 유일한 방법은 제거되는 패치를 적용하지 않고 전체 애플리케이션을 제거하고 다시 설치하는 것입니다.

명령줄 옵션, 스크립팅 인터페이스 또는 다른 애플리케이션에서 MsiRemovePatches를 호출하여 하나 이상의 패치를 제거할 수 있습니다. 패치를 제거하는 방법에 대한 자세한 내용은 패치 제거를 참조하세요.

MSIPATCHREMOVE 속성의 값에는 제거할 패치가 나열됩니다. 목록의 각 패치에 대해 설치 관리자는 제거할 수 없는 패치인지 확인합니다. 사용자에게 패치를 제거할 권한이 없거나, 제품에 대한 패치를 알 수 없거나, 패치 정책이 제거를 방지하거나, 패치가 제거할 수 없음으로 표시된 경우 설치 관리자는 실패한 설치 트랜잭션을 나타내는 오류를 반환합니다. 제거 불가능이 아닌 패치를 결정하는 요소에 대한 자세한 내용은 제거할 수 없는 패치를 참조하세요.

패치가 제거 가능으로 확인되면 설치 관리자는 패치 애플리케이션 시퀀스에서 패치를 제거합니다. Windows Installer 3.0에서 패치를 적용할 때 사용할 시퀀스를 결정하는 방법에 대한 자세한 내용은 패치 시퀀싱을 참조하세요. 시퀀스에서 패치를 제거하면 사용되지 않거나 대체된 것으로 표시된 패치가 활성화될 수 있습니다.

제거를 위해 선택한 모든 패치는 MsiPatchRemovalList 속성에 나열됩니다. 이 속성은 설치 관리자가 설정하며 조건식에서 사용하거나 사용자 지정 작업에서 쿼리할 수 있는 프라이빗 속성입니다. 속성에는 제거할 패치의 패치 코드 GUID 목록이 포함됩니다. 사용자 지정 작업은 MsiGetPatchInfoEx를 호출하거나 Patch 개체의 PatchProperty 속성을 호출하여 패치의 설치 상태가 적용되거나, 사용되지 않거나, 대체되는지 여부를 결정할 수 있습니다.

패치가 제거된 후 애플리케이션의 상태는 패치가 설치되지 않은 경우와 동일합니다. 가능한 경우 설치 관리자는 제거되는 패치의 영향을 받는 기능의 하위 집합으로 프로세스를 제한합니다. 설치 관리자는 REINSTALL 속성을 영향을 받는 기능 목록으로 자동으로 설정합니다. 패치에 의해 추가된 파일은 제거되고 패치에 의해 수정된 파일을 덮어씁니다. 파일 및 레지스트리 항목은 제품에서 패치를 뺀 것으로 예상되는 버전으로 복원됩니다. 패치에 의해 추가된 기능 및 구성 요소는 애플리케이션에서 등록 취소됩니다. 패치에 의해 추가된 추가 콘텐츠는 여전히 적용 가능한 다른 패치에서 콘텐츠를 사용하는 경우 사용자의 컴퓨터에 남아 있을 수 있습니다.

공유 구성 요소의 파일이 패치에 의해 업데이트되는 경우 변경 내용은 구성 요소를 공유하는 모든 애플리케이션에 영향을 줍니다. 패치가 제거되면 다시 변경 내용이 구성 요소를 공유하는 모든 애플리케이션에 영향을 줍니다. 즉, 한 애플리케이션에서 패치를 제거하면 공유 구성 요소의 파일을 다른 애플리케이션에서 요구하는 것보다 낮은 버전으로 복원할 수 있습니다. 이렇게 하면 첫 번째 애플리케이션이 수정될 수 있지만 두 번째 애플리케이션의 작동이 중지될 수 있습니다. 이 경우 기능 또는 애플리케이션 다시 설치에 설명된 메서드를 사용하여 두 번째 애플리케이션을 다시 설치하여 두 번째 애플리케이션을 복구할 수 있습니다. 이렇게 하면 패치된 버전의 파일이 복원됩니다.

MsiEnumapplicationsEx

MsiGetPatchInfoEx

MSIPATCHREMOVE

MsiRemovePatches

패치 시퀀싱

패치 제거 사용자 지정 작업

제거할 수 없는 패치

패치 제거