Condividi tramite


Procedura dettagliata: utilizzo di MSBuild per la creazione di un progetto Visual C++

In questa procedura dettagliata viene mostrato come utilizzare MSBuild per compilare un progetto Visual C++ al prompt dei comandi. Verrà illustrato come creare i file di origine C++ e un file di progetto basato su XML per un'applicazione console Visual C++. Dopo avere compilato il progetto, verrà descritto come personalizzare il processo di compilazione.

In questa procedura dettagliata vengono illustrate le seguenti attività:

  • Creazione dei file di origine C++ per il progetto.

  • Creazione del file XML del progetto MSBuild.

  • Utilizzo di MSBuild per la compilazione del progetto.

  • Utilizzo di MSBuild per la personalizzazione del progetto.

Prerequisiti

Per completare questa procedura dettagliata, sono necessari i seguenti elementi:

  • Visual Studio 2010

  • Conoscenza generale del sistema di MSBuild.

Creazione dei file di origine C++

In questa procedura dettagliata viene mostrato come creare un progetto che dispone di un file di origine e di un file di intestazione. Il file di origine main.cpp contiene la funzione principale per l'applicazione console. Il file di intestazione main.h contiene il codice per l'inclusione del file di intestazione iostream. È possibile creare questi file C++ tramite Visual Studio o un editor di testo.

Per creare i file di origine C++ per il progetto

  1. Creare una directory per il progetto.

  2. Creare un file denominato main.cpp e aggiungervi il codice seguente:

    // main.cpp : the application source code.
    #include <iostream>
    #include "main.h"
    int main()
    {
       std::cout << "Hello, from MSBuild!\n";
       return 0;
    }
    
  3. Creare un file denominato main.h e aggiungere al file il codice seguente:

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

Creazione del file di progetto MSBuild XML

Un file di progetto MSBuild è un file XML che contiene un elemento radice del progetto (<Project>). Nell'esempio di progetto seguente, l'elemento <Project> contiene sette elementi figlio:

  • Tre tag di gruppi di elementi (<ItemGroup>) che specificano la configurazione e la piattaforma del progetto, il nome del file di origine e il nome del file di intestazione.

  • Tre tag di importazione (<Import>) che specificano la posizione delle impostazioni di Microsoft Visual C++.

  • Un tag del gruppo di proprietà (<PropertyGroup>) che specifica le impostazioni del progetto.

Per creare il file di progetto MSBuild

  1. Utilizzare un editor di testo per creare un file di progetto denominato myproject.vcxproj, quindi aggiungere l'elemento radice <Project> illustrato di seguito. Inserire gli elementi nei passaggi della procedura seguente tra i tag radice <Project>.

    <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    </Project>
    
  2. In un elemento <ItemGroup> aggiungere i due elementi figlio <ProjectConfiguration> riportati di seguito. L'elemento figlio specifica le configurazioni di debug e di rilascio per un sistema operativo Windows a 32 bit:

    <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. Aggiungere l'elemento <Import/> seguente che specifica il percorso delle impostazioni C++ predefinite per il progetto:

    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.default.props" />
    
  4. Aggiungere l'elemento del gruppo di proprietà (<PropertyGroup>) seguente che specifica due proprietà del progetto:

    <PropertyGroup>
       <ConfigurationType>Application</ConfigurationType>
       <ShowAllFiles>false</ShowAllFiles>
    </PropertyGroup>
    
  5. Aggiungere l'elemento <Import/> seguente che specifica il percorso delle impostazioni C++ correnti per il progetto:

    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
    
  6. In un elemento <ImportGroup> aggiungere l'elemento figlio <ClCompile> riportato di seguito. L'elemento figlio specifica il nome del file di origine C/C++ da compilare:

    <ItemGroup>
       <ClCompile Include="main.cpp" />
    </ItemGroup>
    
  7. In un elemento <ImportGroup> aggiungere l'elemento figlio <ClInclude> riportato di seguito. L'elemento figlio specifica il nome del file di intestazione per il file di origine C/C++:

    <ItemGroup>
       <ClInclude Include="main.h" />
    </ItemGroup>
    
  8. Aggiungere l'elemento <Import> seguente che specifica il percorso del file che definisce la destinazione per il progetto:

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

File di progetto completo

Nel codice seguente viene mostrato il file di progetto completo come creato nella procedura sopra illustrata.

<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>

Utilizzo di MSBuild per la compilazione del progetto

Per compilare l'applicazione console, al prompt dei comandi digitare il comando seguente:

msbuild myproject.vcxproj /p:configuration=debug

MSBuild crea una directory per i file di output, quindi compila e collega il progetto per generare il programma Myproject.exe. Al termine del processo di compilazione, per eseguire l'applicazione utilizzare il comando seguente:

myproject

L'applicazione dovrebbe visualizzare il messaggio "Hello, from MSBuild!" nella finestra della console.

Personalizzazione del progetto

MSBuild consente di eseguire destinazioni di compilazione predefinite, applicare proprietà definite dall'utente e utilizzare strumenti personalizzati, eventi e istruzioni di compilazione. In questa sezione vengono illustrate le seguenti attività:

  • Utilizzo di MSBuild con destinazioni di compilazione.

  • Utilizzo di MSBuild con proprietà di compilazione.

  • Utilizzo di MSBuild con set di strumenti diversi.

  • Aggiunta di personalizzazioni MSBuild.

Utilizzo di MSBuild con destinazioni di compilazione

Una destinazione di compilazione è un set denominato di comandi predefiniti o definiti dall'utente che è possibile eseguire durante la compilazione. Utilizzare l'opzione della riga di comando di destinazione (/t) per specificare una destinazione di compilazione. Nel caso del progetto di esempio myproject, la destinazione clean predefinita elimina tutti i file nella cartella di debug e crea un nuovo file di log.

Al prompt dei comandi digitare il seguente comando per eseguire la pulizia del progetto myproject.

msbuild myproject.vcxproj /t:clean

Utilizzo di MSBuild con proprietà di compilazione

L'opzione della riga di comando della proprietà (/p) consente di eseguire l'override di una proprietà nel file di compilazione del progetto. Nel progetto di esempio myproject, la configurazione della build di debug o di rilascio viene specificata dalla proprietà Configuration. Il sistema operativo che deve eseguire l'applicazione compilata viene specificato dalla proprietà Platform.

Al prompt dei comandi, digitare il comando seguente per creare una build di debug dell'applicazione myproject che deve essere eseguita su Windows a 32 bit.

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

Si presupponga che il progetto di esempio myproject definisca anche una configurazione per Windows a 64 bit e un'altra configurazione per un sistema operativo personalizzato denominato myplatform.

Al prompt dei comandi, digitare il comando seguente per creare una build di rilascio dell'applicazione che da eseguire su Windows a 64 bit.

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

Al prompt dei comandi, digitare il comando seguente per creare una build di rilascio per myplatform:

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

Utilizzo di MSBuild con set di strumenti diversi

Se nel computer in uso sono installate librerie (set di strumenti) di Visual C++ versione 9.0 e 10.0, MSBuild consente di compilare applicazioni per le versioni di Visual C++ 9.0 o 10.0. Per specificare il set di strumenti di Visual C++ 9.0, aggiungere l'elemento del gruppo di proprietà seguente al file di progetto Myproject.vcxproj dopo l'elemento <Import /> Microsoft.Cpp.props:

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

Per ricompilare il progetto con il set di strumenti di Visual C++ 9.0, digitare uno dei comandi seguenti:

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

Aggiunta di personalizzazioni MSBuild

MSBuild offre diverse modalità per la personalizzazione del processo di compilazione. Negli argomenti seguenti viene mostrato come aggiungere al progetto MSBuild istruzioni di compilazione personalizzate, strumenti ed eventi:

Cronologia delle modifiche

Data

Cronologia

Motivo

Aprile 2011

Aggiunte virgolette all'attributo "xmlns" nel primo frammento di codice.

Commenti e suggerimenti dei clienti.