2014-11-04 4 views
1

WiX 굽기 부트 스트 래퍼는 아키텍처에 따라 HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\SOMEGUID 또는 HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\SOMEGUID 키를 설치합니다. 새 빌드를 만들 때마다 SOMEGUID이 변경된다는 사실을 알고 있습니다. 내 부트 스트 래퍼에서 설치 전에 어떻게 SOMEGUID될 것입니다 무엇을 결정할 수부트 스트 래퍼 GUID

  1. : 나는 경우 사람이 되거 수 있습니다에 엄청난 도움이 될 것입니다 다음의 몇 가지 SOMEGUID에 대한 질문과 답변이 ?
  2. SOMEGUID을 하드 코드 할 수 있습니까?

답변

1
  1. BundleID 속성에서 결정됩니다.
  2. 아니, 그 intermally 설정하고 우리가 그것을 제어 할 필요가 없습니다.

부트 스트 래퍼 프로젝트를 컴파일 할 때마다 변경할 수없는 BundleId라는 GUID 인 새 ID가 할당됩니다. 이 점에서, 작성한 모든 x들은 고유합니다. UpgradeCode 속성은 두 개의 부트 스트랩퍼를 링크하여 관련 번들로 만듭니다. 이 관계는 하나의 번들이 다른 패키지의 설치된 패키지를 감지하고 업그레이드 할 수 있도록합니다.

하지만 공급자 키를 하드 코딩하는 이유는 무엇입니까? MSI의 경우와 같이 두 개의 번들에 동일한 제품 코드가 있으면 주요/부 업그레이드를 제대로 처리 할 수 ​​없습니다.

+0

이사야으로 키를 제공 정의하는 키워드 출발을 사용할 때 2. DLL 파일에 대한 추가 마크 업을 추가,이 작동하지 않습니다 덧붙였다. 나는 노력했다. 동작은 다음과 같습니다 :'Bundle' 엘리먼트에'ProviderKey'를 설정하면'HKLM \ Software \ Microsoft \ Windows \ CurrentVersion \ Uninstall \ SOMEGUID \ @ BundleProviderKey' 값 만 설정되지만'SOMEGUID'는 항상 다른 'ProviderKey'가 설정된 경우 그 값. 설정이되어 있지 않으면,'BundleProviderKey'는'SOMEGUID'와 같습니다만, 위에서 언급 한 것처럼 설치되었을 때 그 내용이 무엇을 의미하는지 결코 알지 못할 것입니다. – Alexandru

+0

이 질문은 'SOMEGUID'에 대해 동일한 값을 구체화하지 않는 ProviderKey 설정과 동일한 문제에 대해 언급합니다. http://stackoverflow.com/questions/26675457/how-to-find-guid-of-wix-burn -executable-for-programmatically-uninstall – Alexandru

+0

합리적인 설명은 복잡하지만 가능한 한 최선을 다해 말로 표현하려고 노력합니다. Burn은 새로운 빌드를 QA에 게시 할 때마다 동일한 버전의 설치를 나란히 수행 할 수 있으므로 부트 스트 래퍼의 동일한 버전에 대해 ARP 항목이 1에서 많게 증가 할 수 있으므로 많은 문제가 발생합니다. 그래서, 내가 한 것은 부트 스트 래퍼를 ARP에서 볼 수 없도록 숨겨두고 MSI 패키지가 보이는 대로만 설치한다는 것입니다. bootstrapper-to-MSI와 MSI-to-bootstrapper 관계를 유지하려고합니다 ... – Alexandru

1

Wix 3.11 버전을 사용하고 다음 단계를 사용하여 번들 용 사용자 지정 ProviderKey를 포함하십시오. 1. WixDependancy.dll에 대한 참조를 Project에 추가하십시오.

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" xmlns:bal="http://schemas.microsoft.com/wix/BalExtension" xmlns:dep="http://schemas.microsoft.com/wix/DependencyExtension"> 

은 3. 그 다음은

<Bundle Name="ABC" ParentName="ParentName" Version="x.x.x." Manufacturer="ABC Company" UpgradeCode="A-a-a-a-a" dep:ProviderKey="b-b-b-b-b">