다음을 통해 공유


MigrateFeatureStates 작업

MigrateFeatureStates 작업은 업그레이드하는 동안 및 관련 애플리케이션을 통해 새 애플리케이션을 설치할 때 사용됩니다. MigrateFeatureStates는 기존 애플리케이션의 기능 상태를 읽은 다음, 보류 중인 설치에서 이러한 기능 상태를 설정합니다. 이 메서드는 새 기능 트리가 원래에서 크게 변경되지 않은 경우에만 유용합니다.

MigrateFeatureStates 작업은 제품이 처음 설치될 때만 실행됩니다. MigrateFeatureStates 작업은 유지 관리 모드 또는 제거 중에 실행되지 않습니다.

MigrateFeatureStates 작업은 Upgrade 테이블의 각 레코드를 순서대로 실행하고 각 행의 업그레이드 코드, 제품 버전, 언어를 시스템에 설치된 모든 제품과 비교합니다. MigrateFeatureStates 작업이 대응을 검색하고 업그레이드 테이블의 Attributes 열에 msidbUpgradeAttributesMigrateFeatures 비트 플래그가 설정된 경우 설치 관리자는 제품의 기존 기능 상태를 쿼리하고 새 애플리케이션에서 동일한 기능에 대해 이러한 상태를 설정합니다. 이 작업은 Preselected 속성이 설정되지 않은 경우에만 기능 상태를 마이그레이션합니다.

시퀀스 제한

MigrateFeatureStates 작업은 CostFinalize 작업 직후에 수행되어야 합니다. MigrateFeatureStates는 InstallUISequence 테이블InstallExecuteSequence 테이블 모두에서 순서를 지정해야 합니다. InstallUISequence에서 작업이 이미 실행된 경우 설치 관리자는 InstallExecuteSequence에서 MigrateFeatureStates가 실행되지 않도록 합니다.

ActionData 메시지

MigrateFeatureSettings는 각 제품에 대한 작업 데이터 메시지를 보냅니다.

설명

둘 이상의 설치된 제품이 기능을 공유하는 경우 해당 기능에 대한 설치 상태가 제품 간에 다를 수 있습니다. MigrateFeatureState 작업은 기능 설치 상태를 마이그레이션할 때 로컬 실행, 원본에서 실행, 보급 및 제거의 우선 순위를 사용합니다. 예를 들어 설치된 제품 A에는 INSTALLSTATE_LOCAL 기능 Y가 있을 수 있으며 설치된 제품 B에는 INSTALLSTATE_ABSENT Y 기능이 있을 수 있습니다. 업그레이드에서 제품 C를 설치하고 기능 Y의 설치 상태를 마이그레이션하는 경우 MigrateFeatureState는 제품 C에 있는 기능 Y의 설치 상태를 INSTALLSTATE_LOCAL로 설정합니다.

제품 업그레이드에 MigrateFeatureStates 작업을 사용하는 방법에 대한 자세한 내용은 향후 주요 업그레이드를 위한 애플리케이션 준비를 참조하세요.