Partager via


Procédure pas à pas : utilisation de MSBuild pour créer un projet Visual C++

Cette procédure pas à pas montre comment utiliser MSBuild pour générer un projet Visual C++ dans une invite de commandes. Vous apprendrez comment créer des fichiers sources C++ et un fichier projet basé sur XML pour une application console Visual C++. Après avoir généré le projet, vous apprendrez comment personnaliser le processus de génération.

Cette procédure pas à pas décrit les tâches suivantes :

  • Création des fichiers sources C++ pour votre projet.

  • Création du fichier projet XML MSBuild.

  • Utilisation de MSBuild pour générer votre projet.

  • Utilisation de MSBuild pour personnaliser votre projet.

Composants requis

Les éléments suivants sont nécessaires pour effectuer cette procédure pas à pas :

  • Visual Studio 2010

  • Connaissances générales du système MSBuild.

Création des fichiers sources C++

Dans cette procédure pas à pas vous créerez un projet qui comporte un fichier source et un fichier d'en-tête. Le fichier source main.cpp contient la fonction principale pour l'application console. Le fichier d'en-tête main.h contient le code pour inclure le fichier d'en-tête iostream. Vous pouvez créer ces fichiers C++ à l'aide de Visual Studio ou d'un éditeur de texte.

Pour créer les fichiers sources C++ pour votre projet

  1. Créez un répertoire pour votre projet.

  2. Créez un fichier nommé main.cpp et ajoutez le code suivant à ce fichier :

    // main.cpp : the application source code.
    #include <iostream>
    #include "main.h"
    int main()
    {
       std::cout << "Hello, from MSBuild!\n";
       return 0;
    }
    
  3. Créez un fichier nommé main.h et ajoutez le code suivant à ce fichier :

    // main.h: the application header code.
    /* Additional source code to include. */
    

Création du fichier projet XML MSBuild

Un fichier projet MSBuild est un fichier XML qui contient un élément racine du projet (<Project>). Dans l'exemple de projet suivant, l'élément <Project> contient sept éléments enfants :

  • Trois balises de groupe d'éléments (<ItemGroup>) qui spécifient la configuration du projet et de la plateforme, le nom du fichier source et le nom du fichier d'en-tête.

  • Trois balises d'importation (<Import>) qui spécifient l'emplacement des paramètres Microsoft Visual C++.

  • Une balise de groupe de propriétés (<PropertyGroup>) qui spécifie les paramètres du projet.

Pour créer le fichier projet MSBuild

  1. Utilisez un éditeur de texte pour créer un fichier projet nommé myproject.vcxproj, puis ajoutez l'élément racine <Project> suivant. Insérez les éléments dans les étapes suivantes entre les balises <Project> racine :

    <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    </Project>
    
  2. Ajoutez les deux éléments <ProjectConfiguration> enfants dans un élément <ItemGroup>. L'élément enfant spécifie les configurations Debug et Release pour un système d'exploitation Windows 32 bits :

    <ItemGroup>
       <ProjectConfiguration Include="Debug|Win32">
          <Configuration>Debug</Configuration>
          <Platform>Win32</Platform>
       </ProjectConfiguration>
       <ProjectConfiguration Include="Release|Win32">
          <Configuration>Release</Configuration>
          <Platform>Win32</Platform>
       </ProjectConfiguration>
    </ItemGroup>
    
  3. Ajoutez l'élément <Import/> suivant qui spécifie le chemin d'accès des paramètres C++ par défaut pour ce projet :

    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.default.props" />
    
  4. Ajoutez l'élément de groupe de propriétés suivant (<PropertyGroup>) qui spécifie deux propriétés du projet :

    <PropertyGroup>
       <ConfigurationType>Application</ConfigurationType>
       <ShowAllFiles>false</ShowAllFiles>
    </PropertyGroup>
    
  5. Ajoutez l'élément <Import/> suivant qui spécifie le chemin d'accès des paramètres C++ actuels pour ce projet :

    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
    
  6. Ajoutez l'élément enfant <ClCompile> dans un élément <ImportGroup>. L'élément enfant spécifie le nom du fichier source C/C++ à compiler :

    <ItemGroup>
       <ClCompile Include="main.cpp" />
    </ItemGroup>
    
  7. Ajoutez l'élément enfant <ClInclude> dans un élément <ImportGroup>. L'élément enfant spécifie le nom du fichier d'en-tête pour le fichier source C/C++ :

    <ItemGroup>
       <ClInclude Include="main.h" />
    </ItemGroup>
    
  8. Ajoutez l'élément <Import> suivant qui spécifie le chemin d'accès du fichier qui définit la cible pour ce projet :

    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Targets" />
    

Fichier projet complet

Le code suivant affiche le fichier projet complet que vous avez créé au cours de la procédure précédente.

<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup>
    <ProjectConfiguration Include="Debug|Win32">
      <Configuration>Debug</Configuration>
      <Platform>Win32</Platform>
    </ProjectConfiguration>
    <ProjectConfiguration Include="Release|Win32">
      <Configuration>Release</Configuration>
      <Platform>Win32</Platform>
    </ProjectConfiguration>
  </ItemGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.default.props" />
  <PropertyGroup>
    <ConfigurationType>Application</ConfigurationType>
    <ShowAllFiles>false</ShowAllFiles>
  </PropertyGroup>
  <Import Project="$(VCTargetsPath)/Microsoft.Cpp.props" />
  <ItemGroup>
    <ClCompile Include="main.cpp" />
  </ItemGroup>
  <ItemGroup>
    <ClInclude Include="main.h" />
  </ItemGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Targets" />
</Project>

Utilisation de MSBuild pour générer votre projet

À l'invite de commandes, tapez la commande suivante afin de générer votre application console :

msbuild myproject.vcxproj /p:configuration=debug

MSBuild crée un répertoire pour les fichiers de sortie, puis compile et lie votre projet pour générer le programme Myproject.exe. Après avoir fini le processus de génération, utilisez la commande suivante pour exécuter l'application :

myproject

L'application doit afficher « Hello, from MSBuild! » dans la fenêtre de console.

Personnalisation de votre projet

MSBuildvous permet d'exécuter des cibles de génération prédéfinies, d'appliquer des propriétés définies par l'utilisateur et d'utiliser des outils personnalisés, des événements et des étapes de génération. Cette section pas à pas décrit les tâches suivantes :

  • Utilisation de MSBuild avec les cibles de génération.

  • Utilisation de MSBuild avec les propriétés de génération.

  • Utilisation de MSBuild avec différents ensembles d'outils.

  • Ajout de personnalisations MSBuild.

Utilisation de MSBuild avec des cibles de génération

Une cible de génération est un jeu nommé de commandes prédéfinies ou définies par l'utilisateur qui peuvent être exécutées lors de la génération. Utilisez l'option de ligne de commande cible (/t) pour spécifier une cible de génération. Dans le cas de l'exemple de projet myproject, la cible prédéfinie clean supprime tous les fichiers dans le dossier de débogage et crée un nouveau fichier journal.

À l'invite de commandes, tapez la commande suivante pour nettoyer myproject.

msbuild myproject.vcxproj /t:clean

Utilisation de MSBuild avec les propriétés de génération

L'option de ligne de commande de propriété (/p) vous permet de substituer une propriété dans votre fichier de génération de projet. Dans l'exemple de projet myproject, la configuration de génération Debug ou Release est spécifiée par la propriété Configuration et le système d'exploitation destiné à exécuter l'application générée est spécifié par la propriété Platform.

À l'invite de commandes, tapez la commande suivante pour créer une version Debug de l'application myproject destinée à s'exécuter sur un système Windows 32 bits.

msbuild myproject.vcxproj /p:configuration=debug /p:platform=win32

Supposons que l'exemple de projet myproject définit également une configuration pour Windows 64 bits, et une autre configuration pour un système d'exploitation personnalisé nommé myplatform.

À l'invite de commandes, tapez la commande suivante pour créer une version Release qui s'exécute sur Windows 64 bits.

msbuild myproject.vcxproj /p:configuration=release /p:platform=x64

À l'invite de commandes, tapez la commande suivante afin de créer une version Release pour myplatform.

msbuild myproject.vcxproj /p:configuration=release /p:platform=myplatform

Utilisation de MSBuild avec un ensemble d'outils différent

Si vous disposez à la fois des bibliothèques (ensembles d'outils) Visual C++ 9.0 et 10.0 sur votre ordinateur, MSBuild peut générer des applications pour Visual C++ 9.0 ou 10.0. Pour spécifier l'ensemble d'outils Visual C++ 9.0, ajoutez l'élément de groupe de propriétés suivant au fichier projet Myproject.vcxproj après l'élément Microsoft.Cpp.props<Import /> :

<PropertyGroup>
    <PlatformToolset>v90</PlatformToolset>
</PropertyGroup>

Pour regénérer votre projet avec l'ensemble d'outils Visual C++ 9.0, tapez l'un ou l'autre des commandes suivantes :

msbuild myproject.vcxproj /p:PlatformToolset=v90 /t:rebuild 
msbuild myproject.vcxproj /t:rebuild

Ajout de personnalisations MSBuild

MSBuild offre différents moyens pour personnaliser votre processus de génération. Les rubriques suivantes indiquent comment ajouter des étapes de génération personnalisée, des outils et des événements à votre projet MSBuild :

Historique des modifications

Date

Historique

Motif

Avril 2011

Ajout de guillemets autour de l'attribut « xmlns » dans le premier extrait de code.

Commentaires client.