2016-06-12 10 views
1

Ich habe ein WIX-Brennpaket mit Visible = "Ja" für alle MsiPackage Elemente. Nach einer neuen Installation oder Aktualisierung wird wie erwartet jedes MSI-Paket in Software angezeigt, einschließlich eines Eintrags für das Paket. Wenn ich jedoch das Paket nach einem Upgrade repariere, werden alle MSI-Einträge unerwartet von Software entfernt. Wenn ich nach einer Neuinstallation eine Reparatur mache, bleiben alle Einträge in den Add/Remove-Programmen erhalten.Add/Remove Programme Einträge fehlen nach der Reparatur von Wix Bundle

Das Upgrade, das ich mache, stammt nicht von einer früheren Version des Bundles. Einige MSIs sind bereits installiert und das Bundle aktualisiert einige dieser MSIs. Dies wird für unsere Kunden der Fall sein, da wir MSIs für eine lange Zeit ausgeliefert haben, aber dies ist das erste Mal, dass wir ein Brennbündel versenden wollen.

Hat jemand anderes dieses unerwartete Verhalten bei der Reparatur gesehen?

Ich verwende Wix Toolset Version 3.10 und ich habe eine verwaltete Bootstrapper-Anwendung. Ich bin mir nicht sicher, was ich mit der Reparatur in meiner verwalteten Bootstrapper-Anwendung falsch machen könnte, um dieses Problem auszulösen. Vielleicht ist dies ein Fehler in der Verbrennung?

Antwort

0

Die Antwort ist nein. Niemand wird wahrscheinlich genau dieses Problem bei der Reparatur sehen. Dies liegt daran, dass das Problem durch einen sehr spezifischen und speziellen Fehler in zwei unserer MSIs verursacht wurde.

Zum Beispiel hatte ein MSI den folgenden Eintrag in der RemoveRegitryTable ...

RemoveRegistry = RemoveIconRegKey 
Root = 2 
Key = Software\Microsoft\Windows\CurrentVersion\Uninstall\[UPGRADE_1]  
Name = - 
Component_ = RemoveIconRegKey 

... und während einer Reparatur wurde UPGRADE_1 nicht gesetzt.

Obwohl es ein Fehler war, hatten wir dieses Problem seit Jahren nicht mehr bemerkt. Wir schalten gerade in den Brennmodus und das Problem wurde durch die Art und Weise ausgelöst, in der das Brennen repariert. Insbesondere legt Burn die REINSTALL-Eigenschaft fest. Das heißt, nur wenn die REINSTALL-Eigenschaft angegeben wird, wird die RemoveRegistryValues-Aktion für bereits installierte Komponenten erneut ausgeführt. Obwohl die Aktion erneut ausgeführt wird, wird die UPGRADE_1-Eigenschaft während einer Reparatur nicht festgelegt, wodurch alle 64-Bit-Add/Remove-Programmeinträge entfernt werden.

Auch jetzt weiß ich, dass es keine Möglichkeit gibt, dass Brennen alle hinzufügen/entfernen Programmeinträge löschen kann, während ein einzelnes MSI installiert wird. Ich bin mir ziemlich sicher, dass "burn fides" Programmeinträge hinzufügt/entfernt, indem ARPSYSCOMCOMPONENT = 1 in der Befehlszeile an jede einzelne MSI übergeben wird, die ausgeblendet werden soll.

+0

Dies liefert keine Antwort auf die Frage. Um einen Autor zu kritisieren oder um Klärung zu bitten, hinterlasse einen Kommentar unter seinem Beitrag. - [Aus Bewertung] (/ review/low-quality-posts/13563451) –

+0

OK. Ich habe meine Antwort bearbeitet. Hoffentlich ist es jetzt klarer. – Gerhard