Visual Studio 2008 du Projet de l'Installateur - Actions Personnalisées pas de tir

Je n'arrive pas à obtenir une action personnalisée de travail. J'ai peut-être mal compris. Voici ce que j'essaie de faire:

J'aimerais exécuter une action personnalisée dans mon installation de l'application (Visual Studio Installer de projet) qui exécute un fichier exécutable. L'exécutable ne fonctionne tout simplement un système.io filecopy tâches, et j'ai confirmé que l'exécutable lorsque couru par lui-même fonctionne parfaitement.

  1. J'ai créé le projet de l'installateur de
  2. ajouté le fichier exe dans le dossier de l'application
  3. est allé à des actions personnalisées et ajouté le fichier exe à la validation de l'étape
  4. InstallerClass est définie sur true
  5. Exécuté le programme d'installation, ne pas obtenir le résultat que j'espérais. J'ai donc ajouté une ligne à écrire à l'ouverture de session windows. Regardé dans les journaux Windows après avoir exécuté le programme d'installation à nouveau et il a regardé comme il ne fonctionne pas. Ajout d'un débogage.pause à l'exe code Unisntalled/réinstallé mon installateur et rien ne s'est passé. J'ai finalement s'assit et regarda le processus, et a confirmé l'exe n'est jamais exécutée.

Toutes les pensées?

Ciblées Systèmes: Windows XP, Vista
Visual Studio Version: 2008 Sp1
Langue: VB.NET
Ciblées Cadre: 2.0


Excellent. Je pense que je suis plus proche grâce au code que vous avez posté. Je me suis converti à VB et j'obtiens cette erreur: Impossible de Trouver myexename.savedstate. Je suppose que je suis censé passer quelque chose pour les sous-titres que vous avez posté, mais je ne sais pas quoi. (en passant c'est une application console) j'ai ajouté une référence à la System.Configuration.Install.dll et voici mon code:

 
Les Importations Du Système.ComponentModel 
Les Importations Du Système.La Configuration.Installer 

_ 
Public Class ApplicationInstaller 
Hérite De L'Installateur 
Public Surcharges Remplace Sous Commit(ByVal savedState Comme IDictionary) 
"Faire le travail de validation 
The_Sub_I_Want_To_Run() 
End Sub 
Public Surcharges Remplace Sous Installer(ByVal stateSaver Comme IDictionary) 
"Faire le travail sur installer 
End Sub 
Public Surcharges Écrase Sous le Désinstaller(ByVal savedState Comme IDictionary) 
"Faire le travail sur désinstaller 
End Sub 
Fin De La Classe 

Je n'appelle pas ça. Je n'ai jamais utilisé le programme d'installation de classe avant. J'ai peut-être fait quelque chose de très rookie ici. Selon vos instructions, j'ai ajouté le code que j'ai collé ci-dessous dans le fichier exe je veux exécuter lors de mon installation. J'ai ajouté le fichier exe dans mon dossier de l'application, puis de l'ajouter à la Commettre une action personnalisée. Maintenant, ici, c'est le code que j'ai maintenant dans la source de mon exe que j'essaie de l'exécuter:

  _
    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 l'exe les Propriétés du Projet j'ai cliqué sur "Signer l'assembly" et l'erreur a disparu. Cependant, on dirait de l'exe ne fonctionne pas le code je le veux.

Projet de déploiement Visual Studio sucer et sera sans aucun doute vous causer des problèmes. Utiliser WiX à la place.

OriginalL'auteur Cj Anderson | 2008-11-26