2017-08-14 2 views
0

Ich bin nur ungern diese Frage zu dieser Zeit fragen, wie ich WiX - Doing a major upgrade on a multi instance install wiederholen ... Aber ich hoffe, dass meine Frage beantwortet werden :)Haupt Upgrade auf einer Multi-Instanz-Installer

Ich habe ein Installationsprogramm mit mehrer Instanzen:

<Product Id="{GUID}" UpgradeCode="{GUID}" Version="!(wix.Version)" Name="MyProduct" Manufacturer="MyCompany"> 

    <MajorUpgrade Schedule="afterInstallExecute" DowngradeErrorMessage="A newer version of [ProductName] is already installed." /> 

    <Property Id="INSTANCEID" Value="Default" /> 
    <InstanceTransforms Property="INSTANCEID"> 
    <Instance Id="I01" ProductName="MyProduct_I01" ProductCode="{GUID}" UpgradeCode="{GUID}" /> 
    <Instance Id="I02" ProductName="MyProduct_I02" ProductCode="{GUID}" UpgradeCode="{GUID}" /> 
    . 
    . 
    . 
    <Instance Id="I49" ProductName="MyProduct_I49" ProductCode="{GUID}" UpgradeCode="{GUID}" /> 
    <Instance Id="I50" ProductName="MyProduct_I50" ProductCode="{GUID}" UpgradeCode="{GUID}" /> 
    </InstanceTransforms> 
</Product> 

aus Gründen der Klarheit verwendet jede neue Version:

  • eine andere Versionsnummer (anders in mindestens einer der ersten 3 Zahlen)
  • 012.351.
  • Ein anderer Produkt-Code für jede Instanz
  • Der gleiche Upgrade-Code für jede Instanz
  • ich jedes Produkt mit Domain-Admin-Rechten installiere

Vor dem Produktcode jede neue Version ändert ich das gleiche verwenden für Jede Version, und obwohl es ein bisschen ungeschickt war (gelöschte Komponenten für immer behalten), funktionierte der Neuinstallationsprozess.

Nachfolgende Neuinstallationen mit verschiedenen Versionen führen dazu, dass msiexec.exe alle Komponenten als fehlend erkennt und somit die Installation fehlschlägt. Es sah so aus, als wäre es an der Zeit, zu größeren Upgrades überzugehen!

Upgrade die naive Weise

msiexec.exe /i "installer.msi" /n {OLD_VERSION_PRODUCTCODE}

eine falsche Meldung angezeigt:

Die Systemadministrator Politik gesetzt diese Installation zu verhindern.

-Upgrade über neu installieren

msiexec.exe /i "installer.msi" /n {OLD_VERSION_PRODUCTCODE} REINSTALL=ALL REINSTALLMODE=vamus

(auch versucht, mit REINSTALLMODE=amus da ein neues Produkt eine neue Installation ist, aber nee)

jede Komponente als abwesend protokolliert und didn Berühren Sie keine Datei (das Upgrade wurde erfolgreich gemeldet):

Installiert: Abwesend; Anfrage: Null; Aktion: Null

Ich bin ratlos - was fehlt mir?

Antwort

0

fand ich eine peinliche Lösung, aber es ist nur für eine peinliche Problem passen:

<SetProperty Id="REINSTALL" Value="" Before="AppSearch" /> 
<SetProperty Id="REINSTALLMODE" Value="" Before="AppSearch" /> 

von unsetting die REINSTALL Eigenschaften ich irgendwie über die große Upgrade Erlaubnis Hürde überspringen und eine echte Wieder Installation abzuwenden, mich zu verlassen mit der neuen Version.

Ich werde gerne eine orthodoxere Lösung akzeptieren, insbesondere eine, die nicht mit Windows Installer Eigenschaften ...