2016-08-09 27 views
0

Es gibt 3 Bundles, der Code ist unten aufgeführt. 1.0.0, 1.0.0.1 und 2.0.0.WiX Bundle: Patches für 1.0.0 werden nicht von Programs & Features entfernt, wenn Bundle 2.0.0 installiert ist

Wenn 1.0.0, 1.0.0.1 und 2.0.0 installiert sind, wird Installierte Updates anzeigen immer noch 1.0.0.1 als installiert aufgeführt. Es wird dort bleiben, bis die letzte Version deinstalliert ist.

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 
    <Bundle Name="Burn Installer" Version="1.0.0" Manufacturer="LANSA" UpgradeCode="AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA" Copyright="..." AboutUrl="..."> 
    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" /> 
    <Chain> 
     <MsiPackage Id="MainPackage" SourceFile="TESTLIST_v1.0.0_en-us.msi" Vital="yes" DisplayInternalUI="yes" /> 
    </Chain> 
    </Bundle> 
</Wix> 

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 
    <Bundle Name="Patch 1.0.0.1" ParentName="Burn Installer" Version="1.0.0.1" Manufacturer="LANSA" UpgradeCode="AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA" Copyright="..." AboutUrl="..."> 
    <RelatedBundle Id="AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA" Action="Patch"/>  
    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" /> 
    <Chain> 
     <MspPackage Id="Patch" SourceFile="TESTLIST_v1.0.0.1_en-us.msp" Vital="yes" DisplayInternalUI="no" PerMachine="yes" Permanent="no"/> 
    </Chain> 
    </Bundle> 
</Wix> 


<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 
    <Bundle Name="Burn Installer" Version="2.0.0" Manufacturer="LANSA" UpgradeCode="AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA" Copyright="..." AboutUrl="..."> 
    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" /> 
    <Chain> 
     <MsiPackage Id="MainPackage" SourceFile="TESTLIST_v2.0.0_en-us.msi" Vital="yes" DisplayInternalUI="yes" /> 
    </Chain> 
    </Bundle> 
</Wix> 

wenn ein Upgrade angewendet wird, alle früheren Versionen und Patches sollten Programme und Funktionen und/oder Installierte Updates anzeigen dekotiert werden. Genauso, wie es bei der direkten Installation des MSI/MSP und nicht beim Bundler der Fall ist.

Antwort

1

Die Antwort für WiX 3.9 und später ist wie folgt ...

In Major Upgrade bündelt die Upgradecode übereinstimmen muss. "AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA" im folgenden Beispiel.

In Patch-Bundles muss der Upgrade-Code eindeutig sein und darf nicht mit anderen GUIDs in einem Bundle verwandt werden. "CCCCCCCC-CCCC-CCCC-CCCC-CCCCCCCCCCCC" in dem Beispiel.

In den Major Upgrade-Bundles muss das RelatedBundle eindeutig sein. Diese GUID wird in allen Patches für dieses Major Upgrade verwendet. "BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBB" im Beispiel.

Diese Einstellungen stellen auch sicher, dass die Hauptaktualisierungen in Programme und Funktionen aufgeführt sind und die Patches in Installierte Updates anzeigen aufgelistet sind.

<Bundle Version="1.0.0" UpgradeCode="AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA"> 
    <RelatedBundle Id="BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBBB" Action="Detect" /> 
</Bundle> 
<Bundle Version="1.0.0.1" UpgradeCode="CCCCCCCC-CCCC-CCCC-CCCC-CCCCCCCCCCCC"> 
    <RelatedBundle Id="BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBBB" Action="Patch" /> 
</Bundle> 
<Bundle Version="2.0.0" UpgradeCode="AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA"> 
    <RelatedBundle Id="DDDDDDDD-DDDD-DDDD-DDDD-DDDDDDDDDDDD" Action="Detect" /> 
</Bundle> 
+0

Dies funktionierte für mich außer das Entfernen des Patches nicht das MSI-Paket auf die ursprüngliche Version herabstufen. Hast du das auch zur Arbeit gebracht? –

+0

@ChristopherPainter Ja, es hat für mich funktioniert. Und wir haben diese Verwendung von WiX eingestellt, da der Autor von WiX anzeigte, dass es nicht so war, wie es verwendet werden sollte. Da es eine Reihe von anderen unlösbaren Problemen gab und er war stark vehement darüber, lösten wir unsere Notwendigkeit auf eine andere Art und Weise. – RobG