2010-10-29 3 views
3

Mon programme d'installation créé par VS 2008 n'appelle pas la méthode de remplacement Uninstall dans ma classe d'installation. Pourquoi? La méthode Install a été appelée. Ma classe d'installation ressemble à ceci:Pourquoi ma méthode de désinstallation n'est-elle pas appelée?

[RunInstaller(true)] 
    public partial class InstallerClass : Installer 
    { 
     public InstallerClass() 
     { 
      InitializeComponent(); 
     } 
     public override void Install(IDictionary stateSaver) 
     { 
      base.Install(stateSaver); 

      //encrypt connection string 
      encryptConntStr(); 

      //create database 
      createDatabase(); 
     } 

     public override void Commit(IDictionary savedState) 
     { 
      base.Commit(savedState); 
     } 

     public override void Rollback(IDictionary savedState) 
     { 
      base.Rollback(savedState); 
     } 

     public override void Uninstall(IDictionary savedState) 
     { 
      base.Uninstall(savedState); 
      System.Diagnostics.Debugger.Break(); 
      MessageBox.Show("I am in Uninstall now."); 
      string exePathStr = Context.Parameters["targetdir"]; 
      ...   

     } 
} 

EDIT: alt text

Répondre

3

assurez-vous que la propriété CustomActionData n'est pas vide. Certains comment il était vide dans mon cas et causer ce problème. alt text

Questions connexes