Je suis réticent à poser cette question à ce moment, comme je le répète WiX - Doing a major upgrade on a multi instance install ... Et pourtant, j'espère que ma question va obtenir une réponse :)mise à niveau majeure sur un programme d'installation multi-instance
J'ai un programme d'installation avec plusieurs cas:
<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>
Par souci de clarté, chaque nouvelle version utilise:
- un autre numéro de version (différente dans au moins l'un des 3 premiers numéros)
- Un autre code produit pour chaque instance
- Le même code de mise à niveau pour chaque instance
- j'installer chaque produit avec des privilèges d'administrateur de domaine
Avant de modifier le code produit chaque nouvelle version j'ai utilisé le même pour chaque version, et même si c'était un peu maladroit (conservant les composants supprimés pour toujours), le processus de ré-installation a fonctionné.
Maintenant, cependant, les réinstallations ultérieures utilisant des versions différentes font que msiexec.exe voit tous les composants comme manquants, échouant ainsi à l'installation. Il semblait qu'il était temps de passer à des mises à niveau majeures!
Mise à niveau du chemin naïve
msiexec.exe /i "installer.msi" /n {OLD_VERSION_PRODUCTCODE}
vous êtes invité faux message:
L'administrateur système a défini des stratégies pour empêcher cette installation.
Mise à niveau via réinstaller
msiexec.exe /i "installer.msi" /n {OLD_VERSION_PRODUCTCODE} REINSTALL=ALL REINSTALLMODE=vamus
(également essayé avec REINSTALLMODE=amus
depuis un nouveau produit est une nouvelle installation, mais Nope)
Logged chaque composant comme absent et didn ne touchez aucun fichier (la mise à niveau a été signalée comme réussie):
Installé: Absent; Demande: Null; Action: Null
Je ne sais pas ce que je manque?