Elementi interni di MSBuild per i progetti C++
Quando si impostano le proprietà del progetto nell'ambiente di sviluppo integrato (IDE) e quindi si salva il progetto, Visual Studio scrive le impostazioni del progetto nel file di progetto. Il file di progetto contiene impostazioni univoche per il progetto. Tuttavia, non contiene tutte le impostazioni necessarie per compilare il progetto. Il file di progetto contiene Import
elementi che includono una rete di file di supporto aggiuntivi . I file di supporto contengono le proprietà, le destinazioni e le impostazioni rimanenti necessarie per compilare il progetto.
La maggior parte delle destinazioni e delle proprietà nei file di supporto esiste esclusivamente allo scopo di implementare il sistema di compilazione. Questo articolo illustra le destinazioni e le proprietà utili che è possibile specificare nella riga di comando di MSBuild. Per individuare altre destinazioni e proprietà, esaminare i file nelle directory dei file di supporto.
Directory dei file di supporto
Per impostazione predefinita, i file di supporto di Visual Studio primari si trovano nelle directory seguenti. Queste informazioni sono specifiche della versione.
Visual Studio 2022 e 2019
%VSINSTALLDIR%MSBuild\Microsoft\VC\<version>\
Contiene i file di destinazione primari () e i file di proprietà (
.targets
.props
) usati dalle destinazioni. Per impostazione predefinita, la$(VCTargetsPath)
macro fa riferimento a questa directory. Il<version>
segnaposto fa riferimento alla versione di Visual Studio: v170 per Visual Studio 2022, v160 per Visual Studio 2019 o v150 per Visual Studio 2017.%VSINSTALLDIR%MSBuild\Microsoft\VC\<version>\Platforms\<platform>\
Contiene i file di destinazione e proprietà specifici della piattaforma che sostituiscono le destinazioni e le proprietà nella relativa directory padre. Questa directory contiene anche una DLL che definisce le attività che vengono usate dalle destinazioni in questa directory. Il
<platform>
segnaposto rappresenta la sottodirectory ARM, ARM64, Win32 o x64.%VSINSTALLDIR%MSBuild\Microsoft\VC\<version>\Platforms\<platform>\PlatformToolsets\<toolset>\
Contiene le directory che consentono alla compilazione di generare applicazioni C++ usando l'oggetto specificato
<toolset>
. Il<platform>
segnaposto rappresenta la sottodirectory ARM, ARM64, Win32 o x64. Il<toolset>
segnaposto rappresenta la sottodirectory del set di strumenti.
Visual Studio 2017
%VSINSTALLDIR%Common7\IDE\VC\VCTargets\
Contiene i file di destinazione primari () e i file di proprietà (
.targets
.props
) usati dalle destinazioni. Per impostazione predefinita, la$(VCTargetsPath)
macro fa riferimento a questa directory.%VSINSTALLDIR%Common7\IDE\VC\VCTargets\Platforms\<platform>\
Contiene i file di destinazione e proprietà specifici della piattaforma che sostituiscono le destinazioni e le proprietà nella relativa directory padre. Questa directory contiene anche una DLL che definisce le attività che vengono usate dalle destinazioni in questa directory. Il
<platform>
segnaposto rappresenta la sottodirectory ARM, ARM64, Win32 o x64.%VSINSTALLDIR%Common7\IDE\VC\VCTargets\Platforms\<platform>\PlatformToolsets\<toolset>\
Contiene le directory che consentono alla compilazione di generare applicazioni C++ usando l'oggetto specificato
<toolset>
. Il<platform>
segnaposto rappresenta la sottodirectory ARM, Win32 o x64. Il<toolset>
segnaposto rappresenta la sottodirectory del set di strumenti.
Visual Studio 2015 e versioni precedenti
<drive>:\Program Files[ (x86)]\MSBuild\Microsoft.Cpp\v4.0\<version>\
Contiene i file di destinazione primari () e i file di proprietà (
.targets
.props
) usati dalle destinazioni. Per impostazione predefinita, la macro $(VCTargetsPath) fa riferimento a questa directory.<drive>:\Program Files[ (x86)]\MSBuild\Microsoft.Cpp\v4.0\<version>\Platforms\<platform>\
Contiene i file di destinazione e proprietà specifici della piattaforma che sostituiscono le destinazioni e le proprietà nella relativa directory padre. Questa directory contiene anche una DLL che definisce le attività che vengono usate dalle destinazioni in questa directory. Il
<platform>
segnaposto rappresenta la sottodirectory ARM, Win32 o x64.<drive>:\Program Files[ (x86)]\MSBuild\Microsoft.Cpp\v4.0\<version>\Platforms\<platform>\PlatformToolsets\<toolset>\
Contiene le directory che consentono alla compilazione di generare applicazioni C++ usando l'oggetto specificato
<toolset>
. Il<version>
segnaposto è V110 per Visual Studio 2012, V120 per Visual Studio 2013 e V140 per Visual Studio 2015. Il<platform>
segnaposto rappresenta la sottodirectory ARM, Win32 o x64. Il<toolset>
segnaposto rappresenta la sottodirectory del set di strumenti. Ad esempio, è v140 per la compilazione di app di Windows usando il set di strumenti di Visual Studio 2015. In alternativa, v120_xp compilare per Windows XP usando il set di strumenti di Visual Studio 2013.<drive>:\Program Files[ (x86)]\MSBuild\Microsoft.Cpp\v4.0\Platforms\<platform>\PlatformToolsets\<toolset>\
I percorsi che consentono alla compilazione di generare applicazioni di Visual Studio 2008 o Visual Studio 2010 non includono .
<version>
In queste versioni, il<platform>
segnaposto rappresenta la sottodirectory Itanium, Win32 o x64. Il<toolset>
segnaposto rappresenta la sottodirectory del set di strumenti v90 o v100.
File di supporto
Le directory dei file di supporto contengono file con queste estensioni:
Estensione | Descrizione |
---|---|
.targets |
Contiene elementi XML Target che specificano le attività eseguite dalla destinazione. Può inoltre contenere elementi PropertyGroup , ItemGroup , ItemDefinitionGroup ed elementi Item definiti dall'utente utilizzabili per assegnare file e opzioni della riga di comando ai parametri delle attività.Per altre informazioni, vedere Target Elemento (MSBuild). |
.props |
Contiene elementi Property Group ed elementi XML Property definiti dall'utente che specificano le impostazioni di file e parametri usate durante una compilazione.Può inoltre contenere elementi ItemDefinitionGroup ed elementi XML Item definiti dall'utente che specificano impostazioni aggiuntive. Gli elementi definiti in un gruppo di definizioni di elementi sono simili alle proprietà, ma non possono essere accessibili dalla riga di comando. I file di progetto di Visual Studio usano spesso gli elementi al posto delle proprietà per rappresentare le impostazioni.Per altre informazioni, vedere Elemento (MSBuild), ItemDefinitionGroup Elemento (MSBuild) ed Item Elemento (MSBuild).ItemGroup |
.xml |
Contiene elementi XML che dichiarano e inizializzano gli elementi dell'interfaccia utente dell'IDE. Ad esempio, le finestre delle proprietà, le pagine delle proprietà, i controlli casella di testo e i controlli casella di riepilogo. I .xml file supportano direttamente l'IDE, non MSBuild. Tuttavia, i valori delle proprietà dell'IDE vengono assegnati agli elementi e alle proprietà di compilazione.La maggior parte dei .xml file si trova in una sottodirectory specifica delle impostazioni locali. Ad esempio, i file per l'area Inglese-Stati Uniti sono in $(VCTargetsPath)\1033\ . |
Proprietà e destinazioni degli utenti
Per usare MSBuild in modo efficace, consente di conoscere quali proprietà e destinazioni sono utili e pertinenti. La maggior parte delle proprietà e delle destinazioni aiuta a implementare il sistema di compilazione di Visual Studio e non è rilevante per l'utente. In questa sezione vengono descritte le proprietà orientate agli utenti e le destinazioni che vale la pena conoscere.
Proprietà PlatformToolset
La proprietà PlatformToolset
determina quale set di strumenti MSVC viene usato nella compilazione. Per impostazione predefinita, si usa il set di strumenti corrente. Quando questa proprietà è impostata, il relativo valore viene concatenato con stringhe letterali per formare il percorso. Si tratta della directory che contiene i file di proprietà e di destinazione necessari per compilare un progetto per una determinata piattaforma. Il set di strumenti della piattaforma deve essere installato per la compilazione con tale versione del set di strumenti della piattaforma.
Ad esempio, impostare la proprietà PlatformToolset
su v140
per usare gli strumenti e le librerie di Visual Studio 2015 per compilare l'applicazione:
msbuild myProject.vcxproj /p:PlatformToolset=v140
Proprietà PreferredToolArchitecture
La proprietà PreferredToolArchitecture
determina se nella compilazione vengono usati gli strumenti e il compilatore a 32 o a 64 bit. Questa proprietà non influisce sull'architettura o sulla configurazione della piattaforma di output. Per impostazione predefinita, MSBuild usa la versione x86 del compilatore e degli strumenti se questa proprietà non è impostata.
Ad esempio, impostare la proprietà PreferredToolArchitecture
su x64
per usare il compilatore e gli strumenti a 64 bit per compilare l'applicazione:
msbuild myProject.vcxproj /p:PreferredToolArchitecture=x64
Proprietà UseEnv
Per impostazione predefinita, le impostazioni specifiche della piattaforma per il progetto corrente sostituiscono le PATH
variabili di ambiente , INCLUDE
, LIB
LIBPATH
, CONFIGURATION
, e PLATFORM
. Impostare la UseEnv
proprietà su true
per garantire che le variabili di ambiente non vengano sottoposte a override.
msbuild myProject.vcxproj /p:UseEnv=true
Target
Sono disponibili centinaia di destinazioni nei file di supporto di Visual Studio. Tuttavia, quasi tutte sono destinazioni orientate al sistema che l'utente può ignorare. La maggior parte delle destinazioni di sistema è preceduta da un carattere di sottolineatura (_
) o ha un nome che inizia con PrepareFor
, Compute
After
Before
, , Pre
, o .Post
Nella tabella seguente sono elencate diverse destinazioni utili orientate all'utente.
Destinazione | Descrizione |
---|---|
BscMake |
Esegue lo strumento Microsoft Browse Information Maintenance Utility, bscmake.exe . |
Build |
Compila il progetto. Questa destinazione è l'impostazione predefinita per un progetto. |
ClCompile |
Esegue lo strumento del compilatore MSVC, cl.exe . |
Clean |
Elimina i file di compilazione temporanei e intermedi. |
Lib |
Esegue lo strumento Gestione librerie a 32 bit di Microsoft, lib.exe . |
Link |
Esegue lo strumento del linker MSVC, link.exe . |
ManifestResourceCompile |
Estrae un elenco di risorse da un manifesto e quindi esegue lo strumento Compilatore di risorse di Microsoft Windows, rc.exe . |
Midl |
Esegue lo strumento del compilatore MIDL (Microsoft Interface Definition Language), midl.exe . |
Rebuild |
Pulisce e quindi compila il progetto. |
ResourceCompile |
Esegue lo strumento Compilatore di risorse di Microsoft Windows, rc.exe . |
XdcMake |
Esegue lo strumento documentazione XML, xdcmake.exe . |
Xsd |
Esegue lo strumento XML Schema Definition, xsd.exe . Vedere la nota. |
Nota
In Visual Studio 2017 e versioni successive il supporto del progetto C++ per .xsd
i file è deprecato. È comunque possibile usare Microsoft.VisualC.CppCodeProvider
aggiungendo CppCodeProvider.dll
manualmente alla GAC.
Vedi anche
Riferimenti delle attività MSBuild
BscMake
compito
CL
compito
CPPClean
compito
LIB
compito
Link
compito
MIDL
compito
MT
compito
RC
compito
SetEnv
compito
VCMessage
compito
XDCMake
compito