다음을 통해 공유


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

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

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

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

  2. 업그레이드 테이블의 특성 열에 msidbUpgradeAttributesOnlyDetect 비트 플래그를 입력하세요.

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

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

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

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

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

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

    업그레이드 테이블

    업그레이드 코드 VersionMin VersionMax 언어 특성 제거하다 ActionProperty
    {E7BE6D45-49FF-4701-A17E-BDCC98CE180D} 3.0   msidbUpgradeAttributesOnlyDetect 새 제품 발견됨
    {E7BE6D45-49FF-4701-A17E-BDCC98CE180D} 1.0 3.0 msidbUpgradeAttributesVersionMinInclusive 업그레이드 발견됨

     

    CustomAction 테이블

    행동 유형 근원 과녁
    CA1 19 더 높은 업그레이드가 이미 설치되어 있습니다.

     

    InstallExecuteSequence 테이블

    행동 조건 순서
    관련 제품 찾기 200
    CA1 새로운 제품 발견 201

     

    속성 테이블

    재산
    보안사용자 지정속성 새 제품 발견; 업데이트 발견