VCBuild e MSBuild: Modifiche al sistema di compilazione in Visual Studio 2010

Il sistema MSBuild per i progetti C++ è stato introdotto in Visual Studio 2010. In Visual Studio 2008 e versioni precedenti è stato usato il sistema VCBuild. Alcuni tipi di file e concetti che dipendono da VCBuild non esistono o sono rappresentati in modo diverso in MSBuild. Questo documento illustra le differenze nel sistema di compilazione corrente. Per convertire un progetto di Visual Studio 2008 in MSBuild, è necessario usare Visual Studio 2010. Dopo la conversione del progetto, è necessario usare la versione più recente di Visual Studio per eseguire l'aggiornamento all'IDE corrente e al set di strumenti del compilatore. Per altre informazioni, tra cui come ottenere Visual Studio 2010, vedere Istruzioni per Visual Studio 2008.

Le sezioni seguenti riepilogano le modifiche da VCBuild a MSBuild. Se il progetto VCBuild include regole di compilazione o macro personalizzate non riconosciute da MSBuild, vedere Progetti di Visual Studio - C++ per informazioni su come tradurre tali istruzioni nel sistema MSBuild. La conversione iniziale da VCBuild a MSBuild è solo un passaggio intermedio. Non è necessario ottenere il file di progetto completamente corretto o per ottenere il programma per la compilazione senza errori. Si usa Solo Visual Studio 2010 per convertire il progetto in formato MSBuild in modo che il progetto funzioni nella versione più recente di Visual Studio.You are using Visual Studio 2010 to convert the project to MSBuild format so that you get the project working in the latest version of Visual Studio.

L'estensione vcproj è ora vcxproj

Per i file di progetto non viene più usata l'estensione vcproj. Visual Studio 2010 converte automaticamente i file di progetto creati da una versione precedente di Visual C++ nel formato MSBuild, che usa l'estensione .vcxproj per i file di progetto.

L'estensione vsprops è ora props

In Visual Studio 2008 e versioni precedenti, una finestra delle proprietà del progetto è un file basato su XML con estensione vsprops. Una finestra delle proprietà del progetto consente di specificare le opzioni per gli strumenti di compilazione come il compilatore o il linker e di creare macro definite dall'utente. In MSBuild l'estensione di file per una finestra delle proprietà del progetto è props.

Regole di compilazione personalizzate e file con estensione rules

In Visual Studio 2008 e versioni precedenti, un file di regola è un file basato su XML con estensione rules. Un file delle regole consente di definire le regole di compilazione personalizzate e includerle nel processo di compilazione di un progetto Visual Studio C++. Una regola di compilazione personalizzata, che può essere associata a una o più estensioni, consente di inviare i file di input a uno strumento che genera uno o più file di output.

Nel sistema MSBuild le regole di compilazione personalizzate sono rappresentate da tre tipi di file, .xml, props e .targets, anziché da un file con estensione rules. Quando viene eseguita la migrazione di un file con estensione rules creato con una versione precedente di Visual C++ a Visual Studio 2010, vengono creati file equivalenti .xml, props e .targets nel progetto insieme al file con estensione rules originale.

Importante

In Visual Studio 2010 l'IDE non supporta la creazione di nuove regole. Per questo motivo, il modo più semplice per usare un file di regole da un progetto creato con una versione precedente di Visual C++ consiste nel eseguire la migrazione del progetto a Visual Studio 2010.

Macro di ereditarietà

In Visual Studio 2008 e versioni precedenti la macro $(Inherit) specifica l'ordine in cui le proprietà ereditate vengono visualizzate nella riga di comando composta dal sistema di compilazione del progetto. La macro $(NoInherit) fa in modo che le occorrenze di $(Inherit) vengano ignorate e non vengano ereditate proprietà che in caso contrario verrebbero ereditate. Ad esempio, per impostazione predefinita la macro $(Inherit) fa in modo che i file specificati usando l'opzione del compilatore /I (directory di inclusione aggiuntive) vengano aggiunti alla riga di comando.

In Visual Studio 2010 l'ereditarietà è supportata specificando il valore di una proprietà come concatenazione di uno o più valori letterali e macro di proprietà. Le macro $(Inherit) e $(NoInherit) non sono supportate.

Nell'esempio seguente viene assegnato un elenco delimitato da punto e virgola a una proprietà nella pagina delle proprietà. L'elenco è costituito dalla concatenazione del <valore> letterale valore e dal valore della MyProperty proprietà a cui si accede usando la notazione macro $(MyProperty).

Property=<value>;$(MyProperty)

file .vcxproj.user

Un file utente (estensione vcxproj.user) archivia le proprietà specifiche dell'utente, ad esempio le impostazioni di debug e distribuzione. Il file vcxproj.user si applica a tutti i progetti per un determinato utente.

file .vcxproj.filters

Quando Esplora soluzioni viene usato per aggiungere un file a un progetto, il file di filtri (.vcxproj.filters) definisce la posizione in cui nella visualizzazione albero Esplora soluzioni viene aggiunto il file, in base all'estensione del nome file.

Impostazioni delle directory di VC++

Le impostazioni delle directory di Visual C++ vengono specificate nella Pagina delle proprietà Directory di VC++. In Visual Studio 2008 e versioni precedenti, le impostazioni delle directory si applicano per utente e l'elenco delle directory escluse viene specificato nel file sysincl.dat .

Le impostazioni delle directory di VC++ non possono essere modificate se si esegue devenv /resetsettings dalla riga di comando. Anche selezionando il menu Strumenti, facendo clic su Importa/Esporta impostazioni e quindi selezionando l'opzione Reimposta tutte le impostazioni non è possibile modificare le impostazioni.

Per eseguire la migrazione delle impostazioni delle directory DI VC++ da un file con estensione vssettings creato da una versione precedente di Visual Studio:

  1. Aprire il menu Strumenti , fare clic su Importa/Esporta impostazioni
  2. Selezionare Importa impostazioni di ambiente selezionate
  3. Seguire le istruzioni della procedura guidata.

Vedi anche

Usare MSBuild dalla riga di comando - C++