2017-05-07 1 views
0

Wix 3.11Visual Studio 2017을 사용합니다. 내 설치 번들은 공존 할 수있는 두 개의 브랜드 (제품 ID가 자동 생성 됨)를 허용하도록 UpgradeCode을 변경하는 조건부 플래그로 두 번 구축됩니다. 따라서 Brand ABrand B을 설치하거나 제거 할 수 없으며 둘 중 아무 문제가 발생하지 않도록 할 수 있습니다. 그들은 두 개의 다른 설치로 간주됩니다. 여전히 Wix 코드를 깨끗하고 단순하게 유지하고 싶습니다.side-by-side 설치의 구성 요소가 올바르게 설치 제거되지 않음

이 시나리오는 작동합니다

  1. 하는 브랜드 A.
  2. 를 설치

    1. 브랜드 A.이
    2. 제거 브랜드 A.

    이 시나리오 작동하지 않습니다 설치

  3. I nstall 브랜드 B.
  4. 브랜드 제거 A. 제어판에서 "A"항목을 제거했지만 파일은 변경되지 않습니다.

레지스트리의 중요한 값이 여전히 있음을 알 수 있습니다.

<DirectoryRef Id="INSTALLLOCATION"> 
    <Component Id="MyExecutables" Guid="12345678-ABCD-1234-5678-111122223333" Win64="$(var.Win64)"> 
     <RegistryValue Root="HKCU" Key="Software\[Manufacturer]\$(var.Brand)\Uninstall" Name="InstalledSoftware" Value="1" Type="integer" KeyPath="yes" /> 
    </Component> 
</DirectoryRef> 

당신이 볼 수 있듯이 는 Key 다른 브랜드 다르지만 Guid은 동일합니다! 나는 이것이 그 일과 관련이 있다고 생각한다. 다른 브랜드에 대해 다른 지침이 필요할 수 있습니까?

Q :이 문제를 해결하는 가장 좋은 방법은 무엇입니까?

답변

1

Wix는 똑같은 일을하는 여러 구성 요소가 있더라도 각 구성 요소마다 고유 한 GUID가 있어야합니다. 따라서 구성 요소가 동일한 GUID를 공유하지 않도록하십시오. GUID의 here을 쉽게 얻을 수 있습니다.

관련 문제