2010-12-08 68 views
3

J'ai une action personnalisée qui s'exécute au tout début de mon projet Install Shield. Je vérifie le code de sortie sur cette action personnalisée parce que c'est un formulaire qui a un bouton suivant et annuler, si l'utilisateur annule l'installation ne devrait PAS continuer, s'ils sélectionnent ensuite il devrait (ainsi je vérifie le code de sortie). Cependant, je ne veux pas que l'utilisateur voit un message d'erreur install-Shield lorsqu'il sélectionne annuler. Y a-t-il quelque chose que je puisse faire? J'ai install shield 2010Install Shield, Comment vérifier le code de sortie mais ne pas afficher l'erreur?

+0

Aussi, il serait acceptable, cependant l'option moins préfable, si je pouvais simplement changer le message d'erreur pour dire "Installation annulée par l'utilisateur" – hrh

+0

Quel type de projet est-ce? –

+0

Projet MSI de base – hrh

Répondre

4

Les actions personnalisées EXE ne peuvent réussir ou échouer (code retour zéro ou différent de zéro). Les actions personnalisées DLL MSI peuvent définir des propriétés (sur lesquelles les actions futures peuvent être conditionnées) et renvoyer l'un des indicateurs d'état, notamment succès, échec ou utilisateur annulé. Si vous devez utiliser un fichier EXE (disons parce qu'il vous a été fourni), vous devrez probablement l'inclure dans une action personnalisée DLL MSI pour faire ce que vous voulez. Ou, si possible, il peut être préférable de réécrire le fichier EXE en tant que DLL.

+0

Merci, mal essayer de faire une action personnalisée MSI DLL, je n'en ai jamais fait, donc des conseils seraient appréciés. – hrh

+0

Je suis donc bloqué en essayant de créer un wrapper pour mon C# windows forms exe. J'ai essayé de créer une DLL régulière qui utilise CreateProcess pour appeler mon exe, puis j'ai essayé de créer une action personnalisée avec cette DLL, mais j'ai juste "La DLL appelée a rencontré un problème." Je ne suis pas sûr de ce que la chose la plus facile à faire est. Vraiment tout ce que je veux, c'est avoir un écran qui donne à l'utilisateur des informations dynamiques au début de l'installation, puis lui demander s'il veut continuer ou non. – hrh

+0

J'ai maintenant compris comment créer une DLL MSI, mais j'ai toujours des problèmes. Si j'ai mon appel DLL un exe simple tel que "notepad.exe" cela fonctionne. Cependant si j'appelle le ".exe" j'ai créé rien ne se produit Il ne fonctionne pas, que pourrais-je faire mal? – hrh