Partager via


Procédure pas à pas : utilisation d'une action personnalisée pour précompiler un assembly au cours de l'installation

Mise à jour : novembre 2007

Les actions personnalisées permettent de spécifier des actions supplémentaires à exécuter sur l'ordinateur cible à la fin de l'installation. Par exemple, dans cette procédure pas à pas, vous passez le nom du chemin d'accès d'une DLL à la propriété CustomActionData pour précompiler l'assembly en code natif pendant l'installation.

Remarque :

Selon vos paramètres actifs ou votre édition, les boîtes de dialogue et les commandes de menu que vous voyez peuvent différer de celles qui sont décrites dans l'aide. Pour modifier vos paramètres, choisissez Importation et exportation de paramètres dans le menu Outils. Pour plus d'informations, consultez Paramètres Visual Studio.

Remarque :

Les instructions suivantes décrivent comment créer un projet de déploiement à l'aide d'un projet Visual Basic ; les principes généraux s'appliquent à tous les projets dans un langage de Visual Studio qui prennent en charge le déploiement des applications Windows.

Pour créer la classe d'action personnalisée

  1. Dans le menu Fichier, cliquez sur NouveauProjet.

  2. Dans la boîte de dialogue Nouveau projet, sélectionnez Projets Visual Basic dans le volet Type de projet, puis choisissez Bibliothèque de classes dans le volet Modèles. Dans la zone Nom, tapez InstallClass.

  3. Dans le menu Projet, choisissez Ajouter un nouvel élément.

  4. Dans la boîte de dialogue Ajouter un nouvel élément, choisissez Classe Installer. Dans la zone Nom, tapez InstallClass.vb. Cliquez sur Ajouter pour ajouter la classe au projet.

Pour ajouter du code à l'action personnalisée

  1. Cliquez avec le bouton droit sur InstallClass.vb dans l'Explorateur de solutions (ou l'aire de conception), puis cliquez sur Afficher le code pour ouvrir l'éditeur de code. Ajoutez le code suivant en haut du module, sous Imports System.Configuration.Install :

    Imports System.Runtime.InteropServices
    Imports System.Text
    
  2. Dans InstallClass.vb, ajoutez la déclaration suivante sous Public Class InstallClass :

    Private Declare Function GetCORSystemDirectory Lib "mscoree.dll" _
      (<Runtime.InteropServices.MarshalAs( _
      System.Runtime.InteropServices.UnmanagedType.LPWStr)> _
      ByVal Buffer As System.Text.StringBuilder, _
      ByVal BufferLength As Integer, ByRef Length As Integer) As Integer
    
  3. Dans InstallClass.vb, après l'instruction End Sub pour MyBase.New, ajoutez la procédure suivante pour substituer la procédure Install de la classe de base :

    <Security.Permissions.SecurityPermission(Security.Permissions.SecurityAction.Demand)> _
    Public Overrides Sub Install(ByVal savedState As _
      System.Collections.IDictionary)
    
       MyBase.Install(savedState)
       Dim Args As String = Me.Context.Parameters.Item("Args")
    
       If Args = "" Then
          Throw New InstallException("No arguments specified")
       End If
    
       ' Gets the path to the Framework directory.
       Dim Path As New System.Text.StringBuilder(1024)
       Dim Size As Integer
       GetCORSystemDirectory(Path, Path.Capacity, Size)
    
       Dim P As Process
       ' Quotes the arguments, in case they have a space in them.
       Dim Si As New ProcessStartInfo(Path.ToString() & "ngen.exe", Chr(34) _
         & Args & Chr(34))
       Si.WindowStyle = ProcessWindowStyle.Hidden
       Try
          P = Process.Start(Si)
          P.WaitForExit()
       Catch e As Exception
          Throw New InstallException(e.Message)
       End Try
    End Sub
    

Pour ajouter un projet de déploiement

  1. Dans le menu Fichier, cliquez sur Ajouter, puis sur Nouveau projet.

  2. Dans la boîte de dialogue Ajouter un nouveau projet, sélectionnez Projets d'installation et de déploiement dans le volet Type de projet, puis choisissez Projet d'installation dans le volet Modèles. Dans la zone Nom, tapez Programme d'installation d'InstallClass.

  3. Dans la fenêtre Propriétés, sélectionnez la propriété ProductName et tapez InstallClass.

  4. Dans l'Éditeur du système de fichiers, sélectionnez Dossier d'application. Dans le menu Action, cliquez sur Ajouter, puis sur Sortie du projet.

  5. Dans la boîte de dialogue Ajouter le groupe de sorties du projet, sélectionnez la sortie principale pour le projet InstallClass, puis cliquez sur OK pour fermer la boîte de dialogue.

Pour ajouter l'action personnalisée

  1. Sélectionnez le projet Programme d'installation d'InstallClass dans l'Explorateur de solutions. Dans le menu Affichage, pointez sur Éditeur et cliquez sur Actions personnalisées.

  2. Dans l'Éditeur des actions personnalisées, sélectionnez le nœud Actions personnalisées. Dans le menu Action, choisissez Ajouter une action personnalisée.

  3. Dans la boîte de dialogue Sélectionner un élément dans le projet, double-cliquez sur Dossier d'application, puis sélectionnez Sortie principale de InstallClass (Actif). Cliquez sur OK pour ajouter l'action personnalisée InstallClass aux quatre nœuds d'actions personnalisées.

  4. Sélectionnez le nœud Sortie principale de InstallClass (Actif) sous le nœud Installer.

  5. Dans la fenêtre Propriétés, sélectionnez la propriété CustomActionData et tapez /Args="[TARGETDIR]InstallClass.dll". Incluez les guillemets.

  6. Répétez ces étapes pour chacune des trois autres instances de Sortie principale de InstallClass (Actif).

  7. Dans le menu Générer, choisissez Générer Programme d'installation d'InstallClass.

Pour effectuer l'installation sur votre ordinateur de développement

  • Sélectionnez le projet Programme d'installation d'InstallClass dans l'Explorateur de solutions. Dans le menu Projet, choisissez Installer.

    Remarque :

    Vous devez avoir des autorisations d'installation sur l'ordinateur pour pouvoir exécuter le programme d'installation.

Pour effectuer le déploiement vers un autre ordinateur

  1. Dans l'Explorateur Windows, naviguez jusqu'à votre répertoire de projet et recherchez le programme d'installation généré. Le chemin d'accès par défaut est \Documents and Settings\VotreNomDeConnexionMes Documents\Visual Studio 2005\Projects\Nom du dossier de solution\Programme d'installation de mon Bloc-notes\configuration de projet\Programme d'installation de mon Bloc-notes.msi. La configuration de projet par défaut est Debug ou Release.

  2. Copiez les fichiers Programme d'installation d'InstallClass.msi et Setup.exe, ainsi que tous les autres fichiers et sous-répertoires du répertoire sur un autre ordinateur.

    Remarque :

    Pour effectuer l'installation sur un ordinateur ne se trouvant pas sur un réseau, copiez les fichiers sur des médias traditionnels, tels que des CD-ROM.

  3. Sur l'ordinateur cible, double-cliquez sur le fichier Setup.exe pour exécuter le programme d'installation.

    Remarque :

    Vous devez avoir des autorisations d'installation sur l'ordinateur pour pouvoir exécuter le programme d'installation.

Pour tester l'installation

  • Naviguez jusqu'au dossier de l'assembly %windir%\assembly (par exemple, C:\Windows\assembly) et recherchez InstallClass. Dans la colonne Type, son type doit être marqué comme étant Images natives.

Pour désinstaller l'application

  1. Dans le Panneau de configuration Windows, double-cliquez sur Ajout/Suppression de programmes.

  2. Dans la boîte de dialogue Ajouter ou supprimer des programmes, sélectionnez Programme d'installation d'InstallClass, cliquez sur Supprimer, puis sur OK pour fermer la boîte de dialogue.

    Conseil :

    Pour effectuer la désinstallation de votre ordinateur de développement, dans le menu Projet, choisissez Désinstaller.

Voir aussi

Concepts

Compilation du MSIL en code natif

Référence

CustomActionData, propriété

Outil Native Image Generator Tool (Ngen.exe)

Autres ressources

Gestion des actions personnalisées lors d'un déploiement