2009-05-29 9 views
0

Mon application (développée en utilisant C# .net) est ouverte maintenant je désinstalle, InstallShield donne un message indiquant que l'application est déjà ouverte et si vous voulez vraiment fermer l'application. La sélection 'Ignorer' poursuit la désinstallation. Certains fichiers et l'exe de l'application ne sont pas fermés. Comment les fermer par installshield sur la désinstallation. Ou il y a des propriétés que je dois définir. Je sais ajouter une action personnalisée à la désinstallation je peux tuer le processus, mais ne devrait pas installershield le faire?Installer Shield 2009 Premier, Désinstaller ne ferme pas le processus/interface

Répondre

0

Si votre objectif est de redémarrer les applications ouvertes et de ne pas tenir compte de la sélection "Ignorer", vous pouvez envisager de définir la propriété "REBOOT" sur "Forcer". Cela demandera à l'utilisateur de redémarrer le système, obtenant ainsi le résultat souhaité.

+0

1. se tup application (exécutant setup.exe), 2. exécutez le programme, 3. maintenant désinstaller le programme (le programme est toujours ouvert), 4. UnInstall avertit que l'application est ouverte, 5. Continuer désinstaller choisir ignorer, 6 Désinstallation terminée, 7 maintenant le résultat est l'exe et certaines DLL n'ont pas été effacées et l'application est toujours ouverte !!! Mon point est, au cours de la désinstallation ne devrait pas l'application être fermée automatiquement et les fichiers DLL et EXE sont supprimés par désinstallation? Si l'application n'est pas ouverte, la désinstallation supprime tous les fichiers/répertoires copiés lors de l'installation. – Samir

+0

S'agit-il d'un programme d'installation MSI ou d'un programme d'installation InstallScript? Si vous utilisez MSI, utilisez-vous Restart Manager? Est-ce que les fichiers sont supprimés après un redémarrage? Dans MSI, la façon dont cela devrait fonctionner est a) MSI détecte les fichiers ouverts qu'il veut supprimer; b) il utilise Restart Manager pour les éteindre; c) en cas d'échec, il vous demandera de redémarrer et les supprimera au prochain redémarrage. –

0

Si votre type de projet est InstallScript MSI ou il prend en charge InstallScript, je préfère écrire du code pour ceci par exemple:

export prototype _Server_UnInstalling(); 
function _Server_UnInstalling() 
STRING Application, ServiceName; 
begin  
    //application name 
    Application = "Demo"; 
    MessageBox("In _Server_UnInstalling",INFORMATION); 
    //Check whether application is running or not. 
    if ProcessRunning(Application) then 
     MessageBox("Demo is running",INFORMATION); 
     //Close server Application 
     ProcessEnd(Application); 
    endif;       

    //if application is having service at the background then 
    ServiceName = "Demo Server"; 
    //Uninstall the server windows services on uninstallation. 
    ServiceRemoveDuringUninstallation(ServiceName); 

end; 

L'exemple ci-dessus donne le squelette, vous devez implémenter la logique pour ProcessRunning, ProcessEnd et ServiceRemoveDuringUninstallation méthodes, vous pouvez vous référer InstallShield aide doc ils ont donné la documentation avec ainsi que le code source

espérons que cette aide ...

Questions connexes