2015-08-26 2 views
0

J'ai un projet d'installation dans Visual Studio 2008 et je suis aux prises avec la configuration d'actions personnalisées. Dans la méthode d'installation, je crée un raccourci sur le bureau et startMenu en fonction de la sélection de l'utilisateur, dans la méthode Unintall, je les supprime. Mon problème est lorsque l'utilisateur interrompt la désinstallation (au moment de désinstaller le formulaire, cliquez sur le bouton [Annuler]), mon raccourci a été supprimé. Comment puis-je l'arrêter?Arrêt de la méthode de désinstallation lorsque l'utilisateur interrompt la désinstallation

Voici mon code:

[RunInstaller(true)] 
public partial class InstallarEx : Installer 
{ 
    public override void Uninstall(IDictionary savedState) 
    { 
     base.Uninstall(savedState); 
     DeleteShortcuts(); 
    } 
} 

Répondre

0

Une action Rollback personnalisée doit travailler pour cela. La restauration s'applique à la désinstallation de la désinstallation, ainsi qu'à l'installation de la restauration. La difficulté peut être de déterminer qu'une annulation de désinstallation est en cours à partir d'une configuration VS avec un support limité pour certaines fonctionnalités. Tout d'abord, si l'installation échoue, vous devez effectuer une restauration pour supprimer les raccourcis. Vous devez donc exécuter une action personnalisée de restauration dont la condition est Non installé. Elle peut vérifier et supprimer les raccourcis. La propriété Installed ne sera pas définie car l'installation de profuct a échoué, c'est pourquoi "Non installé" appellera l'autorité de certification pour supprimer les raccourcis.

Si la désinstallation échoue et revient en arrière, vous devez effectuer une action personnalisée de restauration qui crée de nouveau les raccourcis, utilisez donc la condition Installé. Le produit est toujours installé si la désinstallation échoue. Par conséquent, une condition de Installé signifie que votre autorité de certification doit être appelée pour créer les raccourcis.

Cela peut valoir la peine d'essayer - les changements semblent mineurs et devraient fonctionner.