Condividi tramite


Elementi comuni del progetto MSBuild

In MSBuild un elemento è un riferimento denominato a uno o più file. Gli elementi contengono metadati, ad esempio nomi di file, percorsi e numeri di versione. Tutti i tipi di progetto in Visual Studio hanno diversi elementi in comune. Questi elementi vengono definiti nel file Microsoft.Build.CommonTypes.xsd.

Questo articolo elenca tutti gli elementi di progetto comuni.

Reference

Rappresenta un riferimento all'assembly (gestito) nel progetto.

Nome metadati elemento Descrizione
HintPath Stringa facoltativa. Percorso relativo o assoluto dell'assembly.
Nome Stringa facoltativa. Nome visualizzato dell'assembly, ad esempio "System.Windows.Forms".
FusionName Stringa facoltativa. Specifica il nome di fusione semplice o sicuro per l'elemento.

Quando questo attributo è presente, può risparmiare tempo perché il file di assembly non deve essere aperto per ottenere il nome fusion.
SpecificVersion Valore booleano facoltativo. Specifica se è necessario fare riferimento solo alla versione nel nome fusion.
Alias Stringa facoltativa. Qualsiasi alias per il riferimento.
Privato Valore booleano facoltativo. Specifica se il riferimento deve essere copiato nella cartella di output. Questo attributo corrisponde alla proprietà Copy Local del riferimento presente nell'IDE di Visual Studio.

COMReference

Rappresenta un riferimento al componente COM (non gestito) nel progetto. Questo elemento si applica solo ai progetti .NET.

Nome metadati elemento Descrizione
Nome Stringa facoltativa. Nome visualizzato del componente.
Guid Stringa obbligatoria. GUID per il componente, nel formato {12345678-1234-1234-1234-123456781234}.
VersionMajor Stringa obbligatoria. Parte principale del numero di versione del componente. Ad esempio, "5" se il numero di versione completo è "5.46".
VersionMinor Stringa obbligatoria. Parte secondaria del numero di versione del componente. Ad esempio, "46" se il numero di versione completo è "5.46".
EmbedInteropTypes Valore booleano facoltativo. Se true, incorporare i tipi di interoperabilità di questo riferimento direttamente nell'assembly anziché generare una DLL di interoperabilità.
Lcid Stringa facoltativa. LocaleID per il componente.
WrapperTool Stringa facoltativa. Nome dello strumento wrapper utilizzato nel componente. I valori sono:

1. primario
2. tlbimp
3. primaryortlbimp
4. aximp
Isolato Valore booleano facoltativo. Specifica se il componente è un componente senza reg.

COMFileReference

Rappresenta un elenco di librerie di tipi passate al parametro TypeLibFiles della destinazione ResolveComReference. Questo elemento si applica solo ai progetti .NET.

Nome metadati elemento Descrizione
WrapperTool Stringa facoltativa. Nome dello strumento wrapper utilizzato nel componente. I valori sono:

1. primario
2. tlbimp
3. primaryortlbimp
4. aximp

NativeReference

Rappresenta un file manifesto nativo o un riferimento a tale file.

Nome metadati elemento Descrizione
Nome Stringa obbligatoria. Nome di base del file manifesto.
HintPath Stringa obbligatoria. Percorso relativo del file manifesto.

ProjectReference

Rappresenta un riferimento a un altro progetto. ProjectReference gli elementi vengono trasformati in riferimento elementi dalla destinazione ResolveProjectReferences, pertanto tutti i metadati validi in un riferimento possono essere validi in ProjectReference, se il processo di trasformazione non lo sovrascrive.

Nome metadati elemento Descrizione
Nome Stringa facoltativa. Nome visualizzato del riferimento.
GlobalPropertiesToRemove Facoltativo string[]. Nomi delle proprietà da rimuovere durante la compilazione del progetto a cui si fa riferimento, ad esempio RuntimeIdentifier;PackOnBuild. Il valore predefinito è vuoto.
Progetto Stringa facoltativa. GUID per il riferimento, nel formato {12345678-1234-1234-1234-123456781234}.
OutputItemType Stringa facoltativa. Tipo di elemento in cui generare output di destinazione. Il valore predefinito è vuoto. Se i metadati di riferimento sono impostati su "true" (impostazione predefinita), gli output di destinazione diventano riferimenti per il compilatore.
ReferenceOutputAssembly Valore booleano facoltativo. Se impostato su false, non include l'output del progetto a cui si fa riferimento come riferimento di questo progetto, ma garantisce comunque che l'altro progetto venga compilato prima di questo. Il valore predefinito è true.
Privato Valore booleano facoltativo. Specifica se il riferimento deve essere copiato nella cartella di output. Questo attributo corrisponde alla proprietà Copy Local del riferimento presente nell'IDE di Visual Studio.
SetConfiguration Stringa facoltativa. Imposta la proprietà globale Configuration per il progetto di riferimento, ad esempio Configuration=Release.
SetPlatform Stringa facoltativa. Imposta la proprietà globale Platform per il progetto di riferimento, ad esempio Platform=AnyCPU.
SetTargetFramework Stringa facoltativa. Imposta la proprietà globale TargetFramework per il progetto di riferimento, ad esempio TargetFramework=netstandard2.0.
SkipGetTargetFrameworkProperties Valore booleano facoltativo. Se true, compila il progetto a cui si fa riferimento senza negoziare il valore di TargetFramework più compatibile. Il valore predefinito è false.
Obiettivi Facoltativo string[]. Elenco delimitato da punto e virgola di destinazioni nei progetti a cui si fa riferimento che devono essere compilati. Il valore predefinito è $(ProjectReferenceBuildTargets), che per impostazione predefinita è vuoto, che indica le destinazioni predefinite. Quando si compila in Visual Studio (anziché MSBuild.exe o dotnet build), questa impostazione non impedisce a Visual Studio di compilare le destinazioni predefinite del progetto a cui si fa riferimento.

Nota

Esiste una differenza tra il funzionamento dei riferimenti al progetto tra .NET Framework e .NET Core (incluso .NET 5 e versioni successive). Nei progetti .NET Framework i riferimenti al progetto non sono transitivi. Ovvero, se Project1 fa riferimento a Project2 e Project2 fa riferimento a Project3, non è possibile codificare in Project3 da Project1. Tuttavia, in .NET Core (incluso .NET 5 e versioni successive), i riferimenti al progetto sono transitive. È possibile codificare in Project3 in Project1.

Compilare

Rappresenta i file di origine per il compilatore.

Nome metadati elemento Descrizione
DependentUpon Stringa facoltativa. Specifica il file da cui dipende la compilazione corretta.
AutoGen Valore booleano facoltativo. Indica se il file è stato generato per il progetto dall'ambiente di sviluppo integrato (IDE) di Visual Studio.
Collegamento Stringa facoltativa. Percorso notazione da visualizzare quando il file si trova fisicamente all'esterno dell'influenza del file di progetto.
Visibile Valore booleano facoltativo. Indica se visualizzare il file in esplora soluzioni in Visual Studio.
CopyToOutputDirectory Stringa facoltativa. Determina se copiare il file nella directory di output. I valori sono:

1. Mai
2. Sempre
3. Mantieni più recente
4. IfDifferent

EmbeddedResource

Rappresenta le risorse da incorporare nell'assembly generato.

Nome metadati elemento Descrizione
Cultura Stringa facoltativa. Specifica le impostazioni cultura del file di risorse. Se specificato, il processo di compilazione non deduce automaticamente le impostazioni cultura in base all'estensione di file ( che dipende dalle impostazioni cultura disponibili per .NET/OS nel computer che ospita la compilazione). È consigliabile impostare Culture={culture identifier} o WithCulture=false metadati.
WithCulture Bool facoltativo. Specifica che il file è indipendente dalle impostazioni cultura e il rilevamento delle impostazioni cultura da AssignCulture'attività deve essere ignorato. È consigliabile impostare Culture={culture identifier} o WithCulture=false metadati.
DependentUpon Stringa facoltativa. Specifica il file da cui dipende la compilazione corretta
Generatore Stringa facoltativa. Nome di qualsiasi generatore di file eseguito su questo elemento.
LastGenOutput Stringa facoltativa. Nome del file creato da qualsiasi generatore di file eseguito su questo elemento.
CustomToolNamespace Stringa facoltativa. Spazio dei nomi in cui qualsiasi generatore di file eseguito su questo elemento deve creare codice.
Collegamento Stringa facoltativa. Il percorso notazione viene visualizzato se il file si trova fisicamente all'esterno dell'influenza del progetto.
Visibile Valore booleano facoltativo. Indica se visualizzare il file in esplora soluzioni in Visual Studio.
CopyToOutputDirectory Stringa facoltativa. Determina se copiare il file nella directory di output. I valori sono:

1. Mai
2. Sempre
3. Mantieni più recente
4. IfDifferent
LogicalName Stringa obbligatoria. Nome logico della risorsa incorporata.

Contenuto

Rappresenta i file che non vengono compilati nel progetto, ma possono essere incorporati o pubblicati insieme.

Nome metadati elemento Descrizione
DependentUpon Stringa facoltativa. Specifica il file da cui dipende la compilazione corretta.
Generatore Stringa facoltativa. Nome di qualsiasi generatore di file eseguito su questo elemento.
LastGenOutput Stringa facoltativa. Nome del file creato da qualsiasi generatore di file eseguito su questo elemento.
CustomToolNamespace Stringa facoltativa. Spazio dei nomi in cui qualsiasi generatore di file eseguito su questo elemento deve creare codice.
Collegamento Stringa facoltativa. Percorso notazione da visualizzare se il file si trova fisicamente all'esterno dell'influenza del progetto.
PublishState Stringa obbligatoria. Stato di pubblicazione del contenuto:

-Default
-Incluso
-Escluso
-Datafile
-Prerequisito
IsAssembly Valore booleano facoltativo. Specifica se il file è un assembly.
Visibile Valore booleano facoltativo. Indica se visualizzare il file in esplora soluzioni in Visual Studio.
CopyToOutputDirectory Stringa facoltativa. Determina se copiare il file nella directory di output. I valori sono:

1. Mai
2. Sempre
3. Mantieni più recente
4. IfDifferent
TargetPath Stringa facoltativa. Percorso di output (relativo alla directory di output specifica della configurazione e/o della piattaforma) di un elemento, incluso il nome file. Questo rispetta i metadati Link, se specificati. Se TargetPath non viene specificato, viene calcolato durante il processo di compilazione. Vedere AssignTargetPath.

Nessuno

Rappresenta i file che non devono avere alcun ruolo nel processo di compilazione.

Nome metadati elemento Descrizione
DependentUpon Stringa facoltativa. Specifica il file da cui dipende la compilazione corretta.
Generatore Stringa facoltativa. Nome di qualsiasi generatore di file eseguito su questo elemento.
LastGenOutput Stringa facoltativa. Nome del file creato da qualsiasi generatore di file eseguito su questo elemento.
CustomToolNamespace Stringa facoltativa. Spazio dei nomi in cui qualsiasi generatore di file eseguito su questo elemento deve creare codice.
Collegamento Stringa facoltativa. Percorso notazione da visualizzare se il file si trova fisicamente all'esterno dell'influenza del progetto.
Visibile Valore booleano facoltativo. Indica se visualizzare il file in esplora soluzioni in Visual Studio.
CopyToOutputDirectory Stringa facoltativa. Determina se copiare il file nella directory di output. I valori sono:

1. Mai
2. Sempre
3. Mantieni più recente
4. IfDifferent

AssemblyMetadata

Rappresenta gli attributi dell'assembly da generare come [AssemblyMetadata(key, value)].

Nome metadati elemento Descrizione
Includere Diventa il primo parametro (la chiave) nel costruttore dell'attributo AssemblyMetadataAttribute.
Valore Stringa obbligatoria. Diventa il secondo parametro (il valore) nel costruttore dell'attributo AssemblyMetadataAttribute.

Nota

Questo elemento si applica ai progetti che usano l'SDK per .NET 5 (e .NET Core) e le versioni successive.

InternalsVisibleTo

Specifica gli assembly da generare come attributi dell'assembly [InternalsVisibleTo(..)].

Nome metadati elemento Descrizione
Includere Nome dell'assembly.
Chiave Stringa facoltativa. Chiave pubblica dell'assembly.

Nota

Questo elemento si applica ai progetti che usano l'SDK per .NET 5 (e .NET Core) e le versioni successive.

BaseApplicationManifest

Rappresenta il manifesto dell'applicazione di base per la compilazione e contiene informazioni sulla sicurezza della distribuzione ClickOnce.

CodeAnalysisImport

Rappresenta il progetto FxCop da importare.

Importazione

Rappresenta gli assembly i cui spazi dei nomi devono essere importati dal compilatore Visual Basic.

Cartella

Questo elemento viene usato solo da Visual Studio come segnaposto per una cartella vuota. Quando la cartella viene popolata, viene sostituita da un altro elemento.

Vedere anche