Guide pratique pour spécifier des événements de build (Visual Basic)How to: Specify build events (Visual Basic)

Vous pouvez utiliser des événements de build en Visual Basic pour exécuter des scripts, des macros ou d’autres actions dans le cadre du processus de compilation.Build events in Visual Basic can be used to run scripts, macros, or other actions as a part of the compilation process. Les événements pré-build se produisent avant la compilation, tandis que les événements post-build se produisent après la compilation.Pre-build events occur before compilation; post-build events occur after 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.Build events are specified in the Build Events dialog box, available from the Compile page of the Project Designer.

Note

Visual Basic Express ne prend pas en charge l’entrée d’événements de build.Visual Basic Express does not support entry of build events. Celle-ci n’est prise en charge que dans le produit Visual Studio complet.This is supported only in the full Visual Studio product.

Comment spécifier des événements prébuild et des événements postbuildHow to specify pre-build and post-build events

Pour spécifier un événement de buildTo specify a build event

  1. Après avoir sélectionné un projet dans l’ Explorateur de solutions, dans le menu Projet , cliquez sur Propriétés.With a project selected in Solution Explorer, on the Project menu, click Properties.

  2. Cliquez sur l’onglet Compiler.Click the Compile tab.

  3. Cliquez sur le bouton Événements de build pour ouvrir la boîte de dialogue Événements de build.Click the Build Events button to open the Build Events dialog box.

  4. Entrez les arguments de ligne de commande pour votre action pré-build ou post-build, puis cliquez sur OK.Enter the command-line arguments for your pre-build or post-build action, and then click OK.

    Note

    Ajoutez une instruction call avant toutes les commandes postbuild qui exécutent des fichiers .bat.Add a call statement before all post-build commands that run .bat files. Par exemple, call C:\MyFile.bat ou call C:\MyFile.bat call C:\MyFile2.bat.For example, call C:\MyFile.bat or call C:\MyFile.bat call C:\MyFile2.bat.

    Note

    Si votre événement pré-build ou post-build ne s’exécute pas correctement, vous pouvez terminer la génération en faisant en sorte que l’action d’événement s’achève avec un code autre que zéro (0), qui indique une action réussie.If your pre-build or post-build event does not complete successfully, you can terminate the build by having your event action exit with a code other than zero (0), which indicates a successful action.

Exemple : comment changer des informations de manifeste à l’aide d’un événement postbuildExample: How to change manifest information using a post-build event

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 postbuild (fichier .exe.manifest dans le répertoire du projet).The following procedure shows how to set the minimum operating system version in the application manifest using an .exe command called from a post-build event (the .exe.manifest file in the project directory). La version minimale du système d’exploitation est un nombre en quatre parties, tel que 4.10.0.0.The minimum operating system version is a four-part number such as 4.10.0.0. Pour ce faire, la commande modifie la section <dependentOS> du manifeste :To do this, the command will change the <dependentOS> section of the manifest:

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

Pour créer une commande .exe afin de modifier le manifeste d’applicationTo create an .exe command to change the application manifest

  1. Créez une application console pour la commande.Create a console application for the command. Dans le menu Fichier, cliquez sur Nouveau, puis sur Projet.From the File menu, click New, and then click Project.

  2. Dans la boîte de dialogue Nouveau projet, dans le nœud Visual Basic, sélectionnez Windows, puis le modèle Application console.In the New Project dialog box, in the Visual Basic node, select Windows and then the Console Application template. Attribuez un nom au projet ChangeOSVersionVB.Name the project ChangeOSVersionVB.

  3. Dans Module1.vb, ajoutez la ligne suivante aux autres instructions Imports au début du fichier :In Module1.vb, add the following line to the other Imports statements at the top of the file:

    Imports System.Xml
    
  4. Ajoutez le code suivant dans Sub Main :Add the following code in 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.The command takes two arguments. Le premier argument est le chemin du manifeste de l’application (autrement dit, le dossier dans lequel le processus de génération crée le manifeste, en général .publish).The first argument is the path to the application manifest (that is, the folder in which the build process creates the manifest, typically .publish). Le second argument est la nouvelle version du système d’exploitation.The second argument is the new operating system version.

  5. Dans le menu Générer , cliquez sur Générer la solution.On the Build menu, click Build Solution.

  6. Copiez le fichier .exe dans un répertoire tel que C:\TEMP\ChangeOSVersionVB.exe.Copy the .exe file to a directory such as C:\TEMP\ChangeOSVersionVB.exe.

    Ensuite, appelez cette commande dans un événement post-build pour modifier le manifeste d’application.Next, invoke this command in a post-build event to change the application manifest.

Pour appeler un événement post-build afin de modifier le manifeste d’applicationTo invoke a post-build event to change the application manifest

  1. Créez une application Windows pour le projet à publier.Create a Windows application for the project to be published. Dans le menu Fichier, cliquez sur Nouveau, puis sur Projet.From the File menu, click New, and then click Project.

  2. Dans la boîte de dialogue Nouveau projet, dans le nœud Visual Basic, sélectionnez Bureau Windows, puis le modèle Application Windows Forms.In the New Project dialog box, in the Visual Basic node, select Windows Desktop and then the Windows Forms App template. Attribuez un nom au projet VBWinApp.Name the project VBWinApp.

  3. Après avoir sélectionné le projet dans l’Explorateur de solutions, dans le menu Projet, cliquez sur Propriétés.With the project selected in Solution Explorer, on the Project menu, click Properties.

  4. Dans le Concepteur de projet, accédez à la page Publier et affectez à Emplacement de publication la valeur C:\TEMP.In the Project Designer, go to the Publish page and set Publishing location to C:\TEMP.

  5. Publiez le projet en cliquant sur Publier maintenant.Publish the project by clicking Publish Now.

    Le fichier manifeste est généré et placé dans C:\TEMP\VBWinApp_1_0_0_0\VBWinApp.exe.manifest.The manifest file will be built and put in C:\TEMP\VBWinApp_1_0_0_0\VBWinApp.exe.manifest. Pour consulter le manifeste, cliquez avec le bouton droit sur le fichier, puis cliquez successivement sur Ouvrir avec, Sélectionner le programme dans une liste et Bloc-notes.To view the manifest, right-click the file and click Open with, then click Select the program from a list, and then click Notepad.

    Recherchez l’élément <osVersionInfo> dans le fichier.Search in the file for the <osVersionInfo> element. Par exemple, la version peut être :For example, the version might be:

    <os majorVersion="4" minorVersion="10" buildNumber="0" servicePackMajor="0" />
    
  6. Dans le Concepteur de projet, accédez à l’onglet Compiler, puis cliquez sur le bouton Événements de build pour ouvrir la boîte de dialogue Événements de build.In the Project Designer, go to the Compile tab and click the Build Events button to open the Build Events dialog box.

  7. Dans la zone Ligne de commande de l’événement post-build, entrez la commande suivante :In the Post-build Event Command Line box, enter the following command:

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

    Quand vous générez le projet, cette commande change la version minimale du système d’exploitation dans le manifeste d’application en 5.1.2600.0.When you build the project, this command will change the minimum operating system version in the application manifest to 5.1.2600.0.

    La macro $(TargetPath) exprime le chemin complet de l’exécutable en cours de création.The $(TargetPath) macro expresses the full path for the executable being created. Ainsi, $(TargetPath).manifest spécifie le manifeste de l’application créé dans le répertoire bin.Therefore, $(TargetPath).manifest will specify the application manifest created in the bin directory. La publication copie ce manifeste vers l’emplacement de publication que vous avez défini.Publishing will copy this manifest to the publishing location that you set earlier.

  8. Republiez le projet.Publish the project again. Accédez à la page Publier et cliquez sur Publier maintenant.Go to the Publish page and click Publish Now.

    Réaffichez le manifeste.View the manifest again. Pour consulter le manifeste, accédez au répertoire de publication, cliquez avec le bouton droit sur le fichier, puis cliquez successivement sur Ouvrir avec, Sélectionner le programme dans une liste et Bloc-notes.To view the manifest, go to the publish directory, right-click the file and click Open with and then Select the program from a list, and then click Notepad.

    La version doit maintenant se présenter comme suit :The version should now read:

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

Voir aussiSee also