Dans une installation de Visual Studio projet, Comment puis-je générer un script de désinstallation?
J'ai un projet d'installation de Visual Studio.
Lors de l'installation, il crée une désinstallation fichier de commandes dans le dossier de l'application. SI l'utilisateur souhaite désinstaller le produit, il peut aller dans "Ajout/suppression de Programmes", ou il suffit de double-cliquer sur la désinstallation.cmd. Le contenu est:
%windir%\system32\msiexec /x {CC3EB7BF-DD82-48B9-8EC5-1B0B62B6D285}
Le GUID il est le ProductCode de la Configuration du Projet dans Visual Studio.
Mais, pour les mises à niveau pour fonctionner correctement, j'ai incrémenter le numéro de Version, à chaque fois que je produire une nouvelle MSI. Et, si je incrémenter le numéro de Version, puis j'ai aussi de générer un nouveau Guid pour le ProductCode. Ce qui signifie que la statique de la désinstaller.fichier cmd doit changer.
Comment puis-je générer dynamiquement un fichier de commandes qui contient la valeur ProductCode pour l', au moment de la construction?
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé cette solution ici
"À l'aide de Visual Studio 2005/2008, vous n'avez pas besoin d'écrire du code pour ajouter une option de désinstallation pour un projet d'Installation (Oui, je sais que certaines personnes peuvent écrire le code pour le faire)
1) Dans le Projet de Configuration –> Fichier Système de windows –> clique Droit Sur “Système de Fichiers sur l'ordinateur Cible” –> ajouter un Dossier, sélectionnez le Dossier Système;
2) Dans ce système de dossier Ajouter un fichier. Parcourir pour msiexec.exe de locaux dossier System32 et l'ajouter. Remplacer les propriétés par défaut de ce fichier comme suit:
Condition:=Non Installé (assurez-vous de mettre "Non Installé" exactement comme ça, même cas et pour tout),
Permanent:=True,
Système:=True,
Transitif:=True,
Vital:=False.
3) Créer un nouveau raccourci dans " Utilisateurs Programme Menu’, la valeur Cible pour le Système de Dossier que vous avez créé dans l'étape 1. et il est à l'msiexec.exe. Renommez le raccourci ‘Désinstaller Votre Application". Définissez la propriété Arguments pour /x{espace}[ProductCode].
4) Construire le projet, ignorer un avertissement sur le fait que msiexec devraient être exclus, NE pas l'exclure ou le projet d'installation habitude de construire.
Le "Non Installé" état et Permananet:=True s'assurer que le msiexec.exe ne peut être placé dans le dossier système dans le cadre de l'installer SI ce n'est pas déjà exister, et il n'est pas supprimé sur une désinstallation - donc;s assez sûr d'ignorer cet avertissement et juste aller pour elle.
(Basée sur la description de SlapHead)"
Je viens de faire cette travail:
Ajouter une désinstallation.fichier bat à votre projet. Le contenu de ce fichier est:
Faire un raccourci vers ce fichier de commandes (disons dans le Programme de l'Utilisateur Menu), spécifier dans les propriétés du raccourci, à côté des Arguments:
[ProductCode]
.start msiexec.exe /x %1
; mais la fenêtre noire continue de clignoter.start /B msiexec.exe /x %1
./min
, il devrait au moins de le réduire.C'est le script que j'ai écrit qui crée une désinstallation.cmd. Il exécute une action personnalisée lors de l'installation.
Le résultat est un fichier cmd qui a toujours le courant ProductCode en elle.
L'inconvénient de cette est que ?le script qui crée le désinstaller.cmd reste dans le répertoire d'installation. Pas un énorme problème, mais je n'aime pas les ordures dans le répertoire d'installation. Je n'ai pas encore essayé de faire de "l'createInstaller.js" l'auto-suppression de. Qui pourrait fonctionner.
MODIFIER: oui, à faire la createInstaller.js l'auto-suppression fonctionne très bien.
Je vais accepter ma propre réponse!
OnAfterInstall
? Si oui, comment êtes-vous l'insertion de Script là?une légère variation sur le fichier de commandes approche. si vous ne voulez pas afficher une fenêtre de commande, utilisez un wscript fichier. alimentation [ProductCode] comme avant dans les Arguments
Pour la suppression de l'application je voudrais utiliser le [ProductCode] comme paramètre, l'appel de la commande msiexec à partir de l'application elle-même - pour un guide détaillé pour la création du programme de désinstallation veuillez consulter ce blog: http://endofstream.com/creating-uninstaller-in-a-visual-studio-project/
Je me rends compte que cette question a déjà été posée, mais ce que j'ai fait a été de créer un fichier de commandes avec le contenu suivant:
À l'aide de "démarrer" empêche l'invite de commande de rester ouvert pendant le processus de désinstallation et de l' %1 est remplacé par le premier argument que vous lui transmettez le fichier de commandes lors de l'exécution d'elle.
J'ai ajouté le fichier de commandes pour le dossier de l'application et créé un raccourci de menu qui pointe vers le fichier de commandes. Si vous cliquez-droit sur le raccourci et sélectionnez Propriétés de la Fenêtre. Là, ajouter le texte suivant à la propriété Arguments:
Après la compilation et l'exécution du programme d'installation, vous aurez un raccourci dans le menu démarrer qui appelle le fichier de commandes et passe le code de produit tel qu'il était lors de cette version de l'application a été construit. L'utilisateur sera alors possible de voir une invite vous demandant si le produit doit être désinstallé.
Le seul inconvénient de cette solution est que si l'utilisateur accède à l'application de dossier et double-clique sur le fichier de commandes, le programme de désinstallation va donner une erreur que le package d'installation n'existe pas.
J'ai fait une combinaison de la accepté de répondre et de Serrurerie, la réponse à ne pas voir toutes les éclairs de l'invite de commande ou de l'invite de commande lui-même. Un pro de le faire comme cela, c'est que vous N'AVEZ pas à créer un raccourci et de définir les arguments pour il pour il pour travailler.
Mon createUninstaller.js fichier:
Ce fichier est ajouté comme une action personnalisée au commit 'répertoire'. Pour obtenir effectivement à cela des actions personnalisées:
cliquez-droit sur votre projet d'installation>affichage>actions personnalisées>clic droit commettre de "répertoire" >ajouter une action personnalisée. Après vous avez à la recherche pour le createUninstaller.js fichier que vous avez créé et l'ajouter.
Maintenant pour faire la createUninstaller.js lire les variables targetDir et productCode vous avez à
Cliquez-droit sur le createUninstaller.js fichier dans le projet d'installation d'une action personnalisée
'commit' répertoire et allez dans les propriétés de la fenêtre.
Dans les propriétés, vous verrez la " CustomActionData la propriété. Dans il vous suffit de copier coller [TARGETDIR]|[valeur ProductCode]
Et le tour est joué! Il devrait désormais ajouter l'Uninstall.js fichier de travail dès que vous double-cliquez dessus.
à chaque fois quand u générer le programme d'installation puis toujours changer le code produit. créer un raccourci de désinstallation et il u trouverez argument de ligne de commande de passage de la technique de coupe de tri. il u écrira toujours "/u code de produit" code du produit u besoin d'écrire ici toujours.
mettre ce code dans la méthode main de programme.cs fichier