다음을 통해 공유


이전 패키지가 최신 버전을 통해 설치되지 않도록 방지

사용자에게 최신 버전이 이미 설치된 경우 주요 업그레이드가 설치되지 않도록 Windows Installer 업그레이드 패키지를 작성할 수 있습니다. 이 항목의 절차는 주요 업그레이드 패키지를 실행하여 발생할 수 있는 다운그레이드만 방지할 수 있습니다. 이 절차는 처음 설치하는 동안에만 실행되고 유지 관리 모드(다시 설치)에서 실행되지 않는 FindRelatedProducts 작업을 사용합니다. 부 업그레이드는 다시 설치를 사용하여 수행되므로 이 절차를 사용하여 부 업그레이드 패키지가 애플리케이션을 다운그레이드하려고 하는지 여부를 확인할 수 없습니다. 자세한 내용은 향후 주요 업그레이드를 위한 애플리케이션 준비를 참조하세요.

이전 패키지가 최신 버전을 통해 설치되지 않도록 방지하려면

  1. 이 업그레이드를 받을 수 있는 관련 제품 그룹의 UpgradeCode 속성을 업그레이드 테이블의 UpgradeCode 열에 입력합니다.

  2. 업그레이드 테이블의 특성 열에 msidbUpgradeAttributesOnlyDetect 비트 플래그를 입력합니다.

  3. 이 패키지에서 제공하는 업그레이드 버전을 업그레이드 테이블의 VersionMin 열에 입력합니다. VersionMax 열을 비워 둡니다.

  4. FindRelatedProducts 작업에서 설정할 속성의 이름을 업그레이드 테이블의 ActionProperty 열에 입력합니다.

  5. SecureCustomProperties 속성과 업그레이드 테이블의 ActionProperty 열에 이름이 지정된 속성을 속성 테이블에 추가합니다.

  6. InstallExecuteSequence 테이블의 FindRelatedProducts 작업 다음에 사용자 지정 작업 유형 19를 추가합니다. 이 작업에 대한 CustomAction 테이블에 레코드를 포함하고 대상 열에 표시할 텍스트를 입력합니다. 형식 19 사용자 지정 작업은 설치 관리자에 기본 제공되므로 작성할 코드가 없습니다.

  7. 사용자 지정 작업 유형 19가 포함된 InstallExecuteSequence 테이블에 있는 레코드의 조건 열에 ActionProperty의 이름을 입력합니다. 이렇게 하면 업그레이드 테이블에서 최신 버전이 이미 설치되어 있음을 감지할 때만 사용자 지정 작업이 실행됩니다.

    예를 들어 관련 제품 그룹을 버전 3.0으로 업그레이드하는 Windows Installer 패키지에는 업그레이드, CustomAction, InstallExecuteSequence속성 테이블에 다음 레코드가 포함될 수 있습니다. 그룹의 모든 관련 제품에는 동일한 UpgradeCode가 있지만 3.0 이후 버전이 컴퓨터에 이미 설치된 경우 설치 관리자는 이 업그레이드 패키지를 설치하지 않습니다. 이 경우 설치 관리자가 오류 메시지를 표시하고 설치가 실패합니다. 버전 3.0 업그레이드 패키지는 버전 1.0 및 2.0에 설치됩니다.

    업그레이드 테이블

    UpgradeCode VersionMin VersionMax 언어 특성 제거 ActionProperty
    {E7BE6D45-49FF-4701-A17E-BDCC98CE180D} 3.0   msidbUpgradeAttributesOnlyDetect NEWPRODUCTFOUND
    {E7BE6D45-49FF-4701-A17E-BDCC98CE180D} 1.0 3.0 msidbUpgradeAttributesVersionMinInclusive UPGRADEFOUND

     

    CustomAction 테이블

    작업 형식 원본 대상
    C A 1 19 더 높은 업그레이드가 이미 설치되어 있습니다.

     

    InstallExecuteSequence 테이블

    작업 조건 시퀀스
    FindRelatedProducts 200
    C A 1 NEWPRODUCTFOUND 201

     

    속성 테이블

    속성
    SecureCustomProperties NEWPRODUCTFOUND; UPGRADEFOUND