Question

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

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 exécuté à nouveau sur le même PC. Cependant, ce que je veux est d'être en mesure d'exécuter le msi une seconde fois sur le même PC (sans utiliser la réparation msi) et avoir réinstaller le logiciel à nouveau (même si rien n'a changé). Est-ce possible?

Était-ce utile?

La solution

Vous pouvez accomplir cela en supprimant l'action RegisterProduct, Action RegisterUser, PublishProduct action et PublishFeatures action de la Table InstallExecuteSequence. En supprimant ces actions standard, l'application ne sera pas enregistré dans la base de données MSI de votre système et vous pouvez exécuter et re-exécuter l'installation à plusieurs reprises comme si elle était une première fois l'installation.

MSDN:
Ajout et suppression d'une application sans laisser de traces dans le registre

Autres conseils

EDIT: Je lis ce mal

.

Oneshot

Non, cela est impossible. Même si vous modifiez le ProductCode et le ProductVersion, la deuxième fois, il exécute toujours fonctionner en mode réparation. Même la méthode de correction met en œuvre le mode de réparation et en utilisant essentiellement le fichier patch comme une transformation.

La seule façon d'y arriver serait d'éviter en quelque sorte une entrée de l'application ARP, mais je pense que cela va briser la résilience de l'application dans ce cas, vous ne voulez probablement pas utiliser MSI comme système de livraison.

Je l'ai accompli dans le passé en utilisant une configuration pur InstallScript. Une fois l'installation terminée, je supprimer les entrées de registre liées à ARP donc une autre installation va agir comme une nouvelle installation.

utiliser une instance pour transformer une deuxième installation http://msdn.microsoft.com/en-us /library/aa367797(VS.85).aspx

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top