2010-08-04 5 views
3

J'ai un programme qui est installé via un msi. Le msi a été construit en utilisant un projet de déploiement VS2008 et a une action personnalisée pour exécuter le programme une fois l'installation terminée.msi Installer pour exécuter deux fois

Une fois que le msi a été exécuté, je peux simplement mettre à jour le numéro de version, générer un nouveau code de produit et le msi peut être réexécuté sur le même PC. Cependant, ce que je veux, c'est pouvoir exécuter le msi une seconde fois sur ce même PC (sans utiliser msi repair) et le réinstaller (même si rien n'a changé). Est-ce possible?

Répondre

3

Vous pouvez accomplir cela en supprimant l'action RegisterProduct, l'action RegisterUser, l'action PublishProduct et l'action PublishFeatures de la table InstallExecuteSequence. En supprimant ces actions standard, l'application ne sera pas enregistrée dans la base de données MSI du système et vous pourrez exécuter et relancer l'installation encore et encore comme s'il s'agissait d'une installation initiale.

MSDN:
Adding and Removing an Application and Leaving No Trace in the Registry

+0

Merci, qui a travaillé très bien! Certaines entrées de la table AdvtExecuteSequence doivent également être supprimées. –

0

EDIT: J'ai mal lu.

Oneshot

0

Non, ce n'est pas possible. Même si vous modifiez ProductCode et ProductVersion, la deuxième fois qu'il s'exécute, il s'exécutera toujours en mode de réparation. Même la méthode de correction met en œuvre le mode de réparation et utilise essentiellement le fichier de correctif comme une transformation. La seule façon d'accomplir ceci empêcherait en quelque sorte toute entrée de l'application dans ARP, mais je suspecte que cela rompra la résilience de l'application, auquel cas vous ne voudrez probablement pas utiliser MSI comme système de livraison.

Je l'ai déjà fait par le passé en utilisant une configuration InstallScript pure. Une fois l'installation terminée, je supprime les entrées de registre liées à ARP afin qu'une autre installation agisse comme une nouvelle installation.

Questions connexes