2013-04-29 1 views
2

두 장의 CD를 배포 중이므로 둘 다 setup.exe 번들을 가지고 있습니다.SKU를 업그레이드 할 때 ARP에서 이전 번들을 제거합니다.

하나의 CD를 "표준 SKU"라고하며 setup.exe는 a.msi 및 b.msi를 설치합니다.

다른 CD는 "pro SKU"라고하며 setup.exe는 a.msi, b.msi 및 c.msi를 설치합니다.

setup.exe 파일을 작성할 때 올바른 절차는 무엇입니까? 특히 누군가가 표준 SKU를 설치 한 다음 그 위에 프로 SKU를 설치 한 경우 관련 번들/업그레이드로 간주 되나요? 두 번들을 모두 설치하고 ARP에 두 항목을 모두 유지하십시오. 다른 것?

답변

1

여기서는 업그레이드를 사용하지 않겠지 만 관련 번들은 시작하기에 분명합니다. 이 경우 두 번들은 RelatedBundle ID와 Tag ID를 적절히 공유하게됩니다. 은 "프로"번들에 대한

<Bundle ... Tag='standard'> 

    <RelatedBundle Id='PUT-SAME-GUID-HERE' Action='Detect' /> 

가 동일한 작업을 수행하지만, 적절하게 Tag를 다음 "표준"번들에 다음과 같이 뭔가를 추가합니다.

이제 사용자 정의 부트 스트 래퍼 응용 프로그램의 OnDetectRelatedBundle()에서 번들 중 하나가 이미 설치되어 있으면 콜백을 받게됩니다. 그 콜백은 Tag을 돌려 보내 당신이 어떤 번들이 존재했는지 알게 할 것입니다. 원하는 경우 결과를 사용자에게 표시 할 수 있습니다. 가장 중요한 점은 OnPlanRelatedBundle() 콜백 중에 RequestState을 반환하면 찾은 번들을 제거할지 아니면 남겨 둘지를 결정하는 것입니다.

행운을 빌어 모든 데이터가 올바른 콜백을 얻는 문제입니다.