Condividi tramite


Nozioni di base su MSBuild per sviluppatori WDK

Questa sezione presenta alcuni termini di base di MSBuild agli sviluppatori WDK, che hanno familiarità con Build.exe e NMake.exe. Questa sezione illustra la costruzione di semplici progetti MSBuild.

Concetti relativi a Nmake relativi a MSBuild

Se si è lavorato con Build.exe e versioni precedenti di WDK (prima di WDK 8), probabilmente si ha familiarità con la terminologia e i concetti usati NMake.exe.

  • command : richiama uno strumento da riga di comando.
  • target : descrive una sequenza denominata di comandi.
  • dependency : descrive le destinazioni che dipendono da altre destinazioni.
  • Nmake viene richiamato in un file make con una o più destinazioni specificate. Esegue quindi tutte le dipendenze in modo ricorsivo e quindi i comandi della destinazione.
  • I file Nmake possono includere altri file make per la gestione affidabile della struttura di compilazione.
  • Nmake supporta anche la creazione di variabili denominate che verranno sostituite dai parametri dei comandi.
  • Nmake supporta anche le variabili automatiche assegnate dal Make.exe stesso, ad esempio il nome della directory o del percorso corrente.
  • Una destinazione non verrà mai eseguita due volte durante una singola compilazione. Una volta eseguita, si presuppone che una destinazione abbia completato il proprio lavoro e non venga eseguita di nuovo, anche se una destinazione successiva nella compilazione dipende da essa.

Concetti relativi a MSBuild

  • L'estensione di file MSBuild principale per i progetti C++ è .vcxproj.

  • I comandi sono ora denominati attività e non sono semplicemente chiamate di processi da riga di comando. Le attività sono invece unità di codice eseguibile che MSBuild può usare per eseguire operazioni di compilazione atomiche. Per un elenco completo delle attività, vedere Attività di MSBuild specifiche di Visual C++.

  • MSBuild importa le attività dai rispettivi assembly CLR (Common Language Runtime) con l'elemento UsingTask come illustrato nell'esempio seguente.

    <UsingTask TaskName="TaskName" AssemblyName="AssemblyName" />
    
  • Consente di raggruppare le attività in un ordine specifico e di suddividere il processo di compilazione in unità più piccole.

  • Un PropertyGroup consente di definire le proprietà usando un formato descrittivo. Nell'esempio seguente viene illustrato il formato PropertyGroup .

    <PropertyGroup>
      <ProductVersion>9.0.30729</ProductVersion>
    </PropertyGroup>
    
  • Item è una variante orientata agli oggetti di Property. Mentre il formato della proprietà è nome/valore, il formato dell'elemento è nome/oggetto in cui l'oggetto ha più attributi. Gli elementi sono matrici di oggetti.

  • Le proprietà vengono a cui viene fatto riferimento con il formato $(project) mentre gli elementi fanno riferimento al formato @(name).

  • ItemGroup è un insieme di Items.

  • ItemGroups è in genere un elenco di tutti i file da compilare. La raccolta di file viene quindi passata a un'attività utilizzando la notazione @(itemname). Per altre informazioni sull'uso degli elementi, vedere Elementi di MSBuild.

  • MSBuild include diverse proprietà predefinite a cui è anche possibile fare riferimento in un file di progetto.

  • Per altre informazioni su MSBuild e sulle attività di compilazione, vedere Concetti relativi a MSBuild e Informazioni di riferimento su MSBuild.