Partager via


Comment : spécifier des événements de build (Visual Basic)

Les événements de build en Visual Basic peuvent être utilisés pour exécuter des scripts, macros ou autres actions en tant que parties du processus de compilation.Les événements pre-build se produisent avant compilation ; les événements post-build se produisent après compilation.

Les événements de build sont spécifiés dans la boîte de dialogue Événements de build, disponible à partir de la page Compiler du Concepteur de projets.

[!REMARQUE]

Visual Basic Express ne prend pas en charge l'entrée les événements.Ceci est pris en charge uniquement dans la version complète de Visual Studio.

Comment : spécifier des événements pre-build et post-build

Pour spécifier un événement de build

  1. Un projet étant sélectionné dans l'Explorateur de solutions, cliquez dans le menu Projet sur Propriétés.

  2. Cliquez sur l'onglet Compiler.

  3. Cliquez sur le bouton Événements de build pour ouvrir la boîte de dialogue Événements de build.

  4. Spécifiez les arguments de ligne de commande pour votre action pre-build ou post-build, puis cliquez sur OK.

    [!REMARQUE]

    Ajoutez une instruction call avant toutes les commandes post-build qui exécutent des fichiers .bat.Par exemple, call C:\MyFile.bat ou call C:\MyFile.bat call C:\MyFile2.bat.

    [!REMARQUE]

    Si votre événement pre-build ou post-build ne se termine pas correctement, vous pouvez terminer la génération en quittant l'action d'événement avec un code autre que zéro (0), qui indique une action réussie.

Exemple : comment modifier les informations de manifeste à l'aide d'un événement post-build

La procédure suivante montre comment définir la version minimale du système d'exploitation dans le manifeste de l'application à l'aide d'une commande .exe appelée à partir d'un événement post-build (le fichier .exe.manifest dans le répertoire du projet).La version minimale du système d'exploitation est un nombre en quatre parties, tel que 4.10.0.0.À cette fin, la commande modifie la section <dependentOS> du manifeste :

<dependentOS>
   <osVersionInfo>
      <os majorVersion="4" minorVersion="10" buildNumber="0" servicePackMajor="0" />
   </osVersionInfo>
</dependentOS>

Pour créer une commande .exe afin de modifier le manifeste de l'application

  1. Créez une application console pour la commande.Dans le menu Fichier, cliquez sur Nouveau, puis sur Projet.

  2. Dans la boîte de dialogue Nouveau projet, dans le nœud Visual Basic, sélectionnez Windows, puis le modèle Application console.Nommez le projet ModifierVersionSEVB.

  3. Dans Module1.vb, ajoutez la ligne suivante aux autres instructions Imports en haut du fichier :

    Imports System.Xml
    
  4. Ajoutez le code suivant à Sub Main:

    Sub Main()
       Dim applicationManifestPath As String
       applicationManifestPath = My.Application.CommandLineArgs(0)
       Console.WriteLine("Application Manifest Path: " & applicationManifestPath.ToString)
    
       'Get version name
       Dim osVersion As Version
       If My.Application.CommandLineArgs.Count >= 2 Then
          osVersion = New Version(My.Application.CommandLineArgs(1).ToString)
       Else
          Throw New ArgumentException("OS Version not specified.")
       End If
       Console.WriteLine("Desired OS Version: " & osVersion.ToString())
    
    
       Dim document As XmlDocument
       Dim namespaceManager As XmlNamespaceManager
       namespaceManager = New XmlNamespaceManager(New NameTable())
       With namespaceManager
          .AddNamespace("asmv1", "urn:schemas-microsoft-com:asm.v1")
          .AddNamespace("asmv2", "urn:schemas-microsoft-com:asm.v2")
       End With
    
       document = New XmlDocument()
       document.Load(applicationManifestPath)
    
       Dim baseXPath As String
       baseXPath = "/asmv1:assembly/asmv2:dependency/asmv2:dependentOS/asmv2:osVersionInfo/asmv2:os"
    
       'Change minimum required OS Version.
       Dim node As XmlNode
       node = document.SelectSingleNode(baseXPath, namespaceManager)
       node.Attributes("majorVersion").Value = osVersion.Major.ToString()
       node.Attributes("minorVersion").Value = osVersion.Minor.ToString()
       node.Attributes("buildNumber").Value = osVersion.Build.ToString()
       node.Attributes("servicePackMajor").Value = osVersion.Revision.ToString()
    
       document.Save(applicationManifestPath)
    End Sub
    

    La commande prend deux arguments :le chemin d'accès au manifeste d'application (autrement dit, le dossier dans lequel le processus de génération crée le manifeste, en général NomProjet.publish)et la nouvelle version du système d'exploitation.

  5. Dans le menu Générer, cliquez sur Générer la solution.

  6. Copiez le fichier .exe vers un répertoire tel que C:\TEMP\ModifierVersionSEVB.exe.

Ensuite, appelez cette commande dans un événement post-build pour modifier le manifeste de l'application.

Pour appeler un événement post-build afin de modifier le manifeste de l'application

  1. Créez une application Windows pour le projet à publier.Dans le menu Fichier, cliquez sur Nouveau, puis sur Projet.

  2. Dans la boîte de dialogue Nouveau projet, dans le nœud Visual Basic, sélectionnez Windows, puis le modèle Application Windows.Nommez le projet VBAppWin.

  3. Un projet étant sélectionné dans l'Explorateur de solutions, cliquez dans le menu Projet sur Propriétés.

  4. Dans le Concepteur de projets, accédez à la page Publier et définissez Emplacement de publication avec la valeur C:\TEMP\.

  5. Publiez le projet en cliquant sur Publier maintenant.

    Le fichier manifeste est généré et placé dans C:\TEMP\VBWinApp_1_0_0_0\VBWinApp.exe.manifest.Pour consulter le manifeste, cliquez avec le bouton droit sur le fichier et cliquez sur Ouvrir avec, puis sur Sélectionner le programme dans une liste, puis cliquez sur Bloc-notes.

    Recherchez l'élément <osVersionInfo> dans le fichier.Par exemple, la version peut être la suivante :

    <os majorVersion="4" minorVersion="10" buildNumber="0" servicePackMajor="0" />
    
  6. Dans le Concepteur de projets, accédez à l'onglet Compiler et cliquez sur le bouton Événements de build pour ouvrir la boîte de dialogue Événements de build.

  7. Dans la zone Ligne de commande de l'événement post-build, entrez la commande suivante :

    C:\TEMP\ModifierVersionSEVB.exe "$ (TargetPath) .manifest" 5.1.2600.0

    Lorsque vous générez le projet, cette commande change la version minimale du système d'exploitation dans le manifeste de l'application en 5.1.2600.0.

    La macro $(TargetPath) exprime le chemin d'accès complet pour le fichier exécutable en cours de création.Par conséquent, $(TargetPath).manifest spécifie le manifeste d'application créé dans le répertoire bin.La publication copie ce manifeste vers l'emplacement de publication que vous définissez précédemment.

  8. Publiez à nouveau le projet.Allez à la page Publier et cliquez sur Publier maintenant.

    Consultez à nouveau le manifeste.Pour consulter le manifeste, accédez au répertoire de publication, cliquez avec le bouton droit sur le fichier et cliquez sur Ouvrir avec, puis sur Sélectionner le programme dans une liste et sur Bloc-notes.

    La version doit maintenant être :

    <os majorVersion="5" minorVersion="1" buildNumber="2600" servicePackMajor="0" />
    

Voir aussi

Tâches

Comment : spécifier des événements de build (C#)

Référence

Page Compiler, Concepteur de projets (Visual Basic)

Page Publier, Concepteur de projets

Ligne de commande de l'événement pré-build/post-build, boîte de dialogue

Autres ressources

Gestion des propriétés de compilation