Je n'arrive pas à faire fonctionner une action personnalisée. Je peux faire cela mal. Voici ce que j'essaie de faire:Projet d'installation de Visual Studio 2008 - Les actions personnalisées ne se déclenchent pas
Je voudrais exécuter une action personnalisée dans mon installation d'application (projet Visual Studio Installer) qui exécute un exécutable. L'exécutable fait simplement des tâches de filtrage de fichiers system.io, et j'ai confirmé que l'exécutable lorsqu'il fonctionne seul fonctionne parfaitement.
- J'ai créé le projet d'installation
- a ajouté le fichier EXE dans le dossier de l'application
- est allé à des actions personnalisées et a ajouté l'exe à l'étape de validation
- InstallerClass est définie sur true
- courais le programme d'installation , n'a pas eu le résultat que j'espérais. J'ai donc ajouté une ligne pour écrire dans le journal de Windows. Regardé dans le journal Windows après avoir exécuté le programme d'installation à nouveau et il semblait qu'il ne fonctionnait pas. Ajout d'un debug.break au code exe Unisntalled/réinstallé mon installateur et rien ne s'est passé. Je me suis finalement assis et ai regardé les processus et ai confirmé que l'exe n'est jamais exécuté.
Des pensées?
systèmes ciblés: Windows XP, Vista Version Visual Studio: 2008 Sp1 Langue: VB.NET Cadre ciblé: 2,0
excellent. Je pense que je me rapproche du code que vous avez posté. Je l'ai converti en VB et je reçois cette erreur: Impossible de trouver myexename.savedstate. Je suppose que je suis supposé passer quelque chose aux sous-marins que vous avez postés mais je ne sais pas quoi. (Par la façon dont cela est une application console) j'ai ajouté une référence à la System.Configuration.Install.dll et voici mon code:
Imports System.ComponentModel Imports System.Configuration.Install _ Public Class ApplicationInstaller Inherits Installer Public Overloads Overrides Sub Commit(ByVal savedState As IDictionary) ' Do some work on commit The_Sub_I_Want_To_Run() End Sub Public Overloads Overrides Sub Install(ByVal stateSaver As IDictionary) ' Do some work on install End Sub Public Overloads Overrides Sub Uninstall(ByVal savedState As IDictionary) ' Do some work on uninstall End Sub End Class
Je n'ai pas appelé cela. Je n'ai jamais utilisé la classe Installer auparavant. Je pourrais faire quelque chose de très novice ici. Selon vos instructions, j'ai ajouté le code que j'ai collé ci-dessous dans l'exe que je veux exécuter lors de mon installation. J'ai ajouté l'exe à mon dossier d'application, puis l'ai ajouté à l'action personnalisée Commit. Maintenant, voici le code que j'ai maintenant dans la source de mon exe que je suis en train de courir:
_
Public Class ApplicationInstaller
Inherits Installer
Public Overloads Overrides Sub Commit(ByVal savedState As IDictionary)
' Do some work on commit
The_Sub_I_Have_my_codein()
MyBase.Commit(savedState)
End Sub
Public Overloads Overrides Sub Install(ByVal stateSaver As IDictionary)
' Do some work on install
End Sub
Public Overloads Overrides Sub Uninstall(ByVal savedState As IDictionary)
' Do some work on uninstall
End Sub
End Class
Hmmm ... Dans Propriétés du projet de l'exe je cliqué sur « Sign l'assemblée "et l'erreur est partie. Cependant, il semble que l'exe n'exécute pas le code que je veux.
Le projet de déploiement de Visual Studio est nul et vous causera sans aucun doute des problèmes. Utilisez WiX à la place. – erikkallen