Gemeinsame MSBuild-Projektelemente

In MSBuild ist ein Element ein benannter Verweis auf eine oder mehrere Dateien. Elemente enthalten Metadaten wie Dateinamen, Pfade und Versionsnummern. Alle Projekttypen in Visual Studio haben mehrere Elemente gemeinsam. Diese Elemente werden in der Datei Microsoft.Build.CommonTypes.xsd definiert.

In diesem Artikel werden alle gängigen Projektelemente aufgelistet.

Referenz

Stellt einen Assemblyverweis (verwaltet) im Projekt dar.

Elementmetadatenname Beschreibung
HintPath Optionale Zeichenfolge. Relativer oder absoluter Pfad der Assembly.
name Optionale Zeichenfolge. Der Anzeigename der Assembly, z. B. "System.Windows.Forms".
FusionName Optionale Zeichenfolge. Gibt den einfachen oder starken Fusionsnamen für das Element an.

Wenn dieses Attribut vorhanden ist, kann es Zeit sparen, da die Assemblydatei nicht geöffnet werden muss, um den Fusionsnamen abzurufen.
SpecificVersion Optionaler boolescher Wert. Gibt an, ob nur auf die Version im Fusionsnamen verwiesen werden soll.
Aliase Optionale Zeichenfolge. Alle Aliase für den Verweis.
Private Optionaler boolescher Wert. Gibt an, ob der Verweis in den Ausgabeordner kopiert werden soll. Dieses Attribut entspricht der Eigenschaft Lokale Kopie des Verweises in der Visual Studio-IDE.

COMReference

Stellt einen COM-Komponentenverweis (nicht verwaltet) im Projekt dar. Dieses Element gilt nur für .NET-Projekte.

Elementmetadatenname Beschreibung
name Optionale Zeichenfolge. Der Anzeigename der Komponente.
GUID Erforderliche Zeichenfolge. Eine GUID für die Komponente im Format {12345678-1234-1234-1234-123456781234}.
VersionMajor Erforderliche Zeichenfolge. Der Hauptteil der Versionsnummer der Komponente. Beispielsweise "5", wenn die Versionsnummer "5.46" lautet.
VersionMinor Erforderliche Zeichenfolge. Der zweite Teil der Versionsnummer (Nebenversionsnummer) der Komponente. Beispielsweise "46", wenn die Versionsnummer "5.46" lautet.
EmbedInteropTypes Optionaler boolescher Wert. Falls TRUE, betten Sie die Interop-Typen aus diesem Verweis direkt in Ihre Assembly ein, anstatt eine Interop-DLL zu generieren.
Lcid Optionale Zeichenfolge. Die LocaleID (Gebietsschema-ID) für die Komponente.
WrapperTool Optionale Zeichenfolge. Der Name des Wrappertools, das auf die Komponente angewendet wird. Gültige Werte:

1. primary
2. tlbimp
3. primaryortlbimp
4. aximp
Isolated Optionaler boolescher Wert. Gibt an, ob die Komponente eine registrierungsfreie Komponente ist.

COMFileReference

Stellt eine Liste von Typbibliotheken dar, die an den Parameter TypeLibFiles des ResolvedComreference-Ziels übertragen werden. Dieses Element gilt nur für .NET-Projekte.

Elementmetadatenname Beschreibung
WrapperTool Optionale Zeichenfolge. Der Name des Wrappertools, das auf die Komponente angewendet wird. Gültige Werte:

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

NativeReference

Stellt eine systemeigene Manifestdatei oder einen Verweis auf eine solche Datei dar.

Elementmetadatenname Beschreibung
name Erforderliche Zeichenfolge. Der Basisname der Manifestdatei.
HintPath Erforderliche Zeichenfolge. Der relative Pfad der Manifestdatei.

ProjectReference

Stellt einen Verweis auf ein anderes Projekt dar. ProjectReference-Elemente werden durch das ResolveProjectReferences-Ziel in Verweiselemente transformiert. Daher können alle gültigen Metadaten für einen Verweis für ProjectReference gültig sein, wenn der Transformationsprozess diese nicht überschreibt.

Elementmetadatenname Beschreibung
name Optionale Zeichenfolge. Der Anzeigename des Verweises.
GlobalPropertiesToRemove Optionale string[]. Dies sind die Namen der Eigenschaften, die beim Erstellen des Projekts, auf das verwiesen wird, entfernt werden sollen (z. B. RuntimeIdentifier;PackOnBuild). Ist standardmäßig leer.
Projekt Optionale Zeichenfolge. Eine GUID für den Verweis im Format {12345678-1234-1234-1234-123456781234}.
OutputItemType Optionale Zeichenfolge. Dies ist der Elementtyp, in dem Zielausgaben ausgegeben werden sollen. Der Standardwert ist leer. Wenn die Referenzmetadaten auf "true" (Standardeinstellung) festgelegt sind, werden die Zielausgaben zu Verweisen für den Compiler.
ReferenceOutputAssembly Optionaler boolescher Wert. Bei Festlegung auf false, schließt die Ausgabe des referenzierten Projekts nicht als Referenz dieses Projekts ein, stellt aber dennoch sicher, dass das andere Projekt vor diesem Projekt erstellt wird. Wird standardmäßig auf true festgelegt.
Private Optionaler boolescher Wert. Gibt an, ob der Verweis in den Ausgabeordner kopiert werden soll. Dieses Attribut entspricht der Eigenschaft Lokale Kopie des Verweises in der Visual Studio-IDE.
SetConfiguration Optionale Zeichenfolge. Hiermit wird die globale Eigenschaft Configuration für das Projekt festgelegt, auf das verwiesen wird (z. B. Configuration=Release).
SetPlatform Optionale Zeichenfolge. Hiermit wird die globale Eigenschaft Platform für das Projekt festgelegt, auf das verwiesen wird (z. B. Platform=AnyCPU).
SetTargetFramework Optionale Zeichenfolge. Hiermit wird die globale Eigenschaft TargetFramework für das Projekt festgelegt, auf das verwiesen wird (z. B. TargetFramework=netstandard2.0).
SkipGetTargetFrameworkProperties Optionaler boolescher Wert. Im Falle von true wird das Projekt, auf das verwiesen wird, ohne die Aushandlung des Werts TargetFramework mit der höchsten Kompatibilität erstellt. Wird standardmäßig auf false festgelegt.
Ziele Optionale string[]. Dies ist eine durch Semikolons getrennte Liste von Zielen in den zu erstellenden Projekten, auf die verwiesen wird. Der Standardwert ist der Wert von $(ProjectReferenceBuildTargets), der standardmäßig leer ist und die Standardziele angibt. Beim Erstellen in Visual Studio (im Gegensatz zu MSBuild.exe oder dotnet build) verhindert dies nicht, dass Visual Studio die Standardziele des referenzierten Projekts erstellt.

Hinweis

Es gibt einen Unterschied zwischen der Funktionsweise von Projektverweisen zwischen .NET Framework und .NET Core (einschließlich .NET 5 und höher). In .NET Framework-Projekten sind Projektverweise nicht transitiv. Das heißt, wenn Project1 auf Project2 und Project2 auf Project3 verweist, können Sie in Project1 nicht für Project3 programmieren. In .NET Core (einschließlich .NET 5 und höher) sind Projektverweise jedoch transitiv. Sie können in Project1 für Project3 programmieren.

Compile

Stellt die Quelldateien für den Compiler dar.

Elementmetadatenname Beschreibung
DependentUpon Optionale Zeichenfolge. Gibt die Datei an, von der diese Datei abhängt, um ordnungsgemäß zu kompilieren.
AutoGen Optionaler boolescher Wert. Gibt an, ob die Datei für das Projekt von der integrierten Visual Studio-Entwicklungsumgebung (IDE) generiert wurde.
Link Optionale Zeichenfolge. Der anzuzeigende Notationspfad, wenn sich die Datei physisch außerhalb des Einflusses der Projektdatei befindet.
Sichtbar Optionaler boolescher Wert. Gibt an, ob die Datei im Projektmappen-Explorer in Visual Studio angezeigt wird.
CopyToOutputDirectory Optionale Zeichenfolge. Bestimmt, ob die Datei in das Ausgabeverzeichnis kopiert werden soll. Gültige Werte:

1. Nie
2. Immer
3. PreserveNewest

EmbeddedResource

Stellt Ressourcen dar, die in die generierte Assembly eingebettet werden.

Elementmetadatenname Beschreibung
DependentUpon Optionale Zeichenfolge. Gibt die Datei an, von der diese Datei abhängt, um ordnungsgemäß zu kompilieren.
Generator Optionale Zeichenfolge. Der Name eines die oft ausgegebene Befehlszeilen Datei-Generators, der über diesem Element ausgeführt wird.
LastGenOutput Optionale Zeichenfolge. Der Name der Datei, die von einem die oft ausgegebene Befehlszeilen Datei-Generator erstellt wurde, der über diesem Element ausgeführt wurde.
CustomToolNamespace Optionale Zeichenfolge. Der Namespace, in dem ein beliebiger Datei-Generator, der über diesem Element ausgeführt wird, Code erstellen sollte.
Link Optionale Zeichenfolge. Der Notationspfad wird angezeigt, wenn sich die Datei physisch außerhalb des Einflusses des Projekts befindet.
Sichtbar Optionaler boolescher Wert. Gibt an, ob die Datei im Projektmappen-Explorer in Visual Studio angezeigt wird.
CopyToOutputDirectory Optionale Zeichenfolge. Bestimmt, ob die Datei in das Ausgabeverzeichnis kopiert werden soll. Gültige Werte:

1. Nie
2. Immer
3. PreserveNewest
LogicalName Erforderliche Zeichenfolge. Der logische Name der eingebetteten Ressource.

Inhalt

Stellt Dateien dar, die nicht in das Projekt kompiliert werden, aber möglicherweise zusammen eingebettet oder veröffentlicht werden.

Elementmetadatenname Beschreibung
DependentUpon Optionale Zeichenfolge. Gibt die Datei an, von der diese Datei abhängt, um ordnungsgemäß zu kompilieren.
Generator Optionale Zeichenfolge. Der Name eines die oft ausgegebene Befehlszeilen Datei-Generators, der über diesem Element ausgeführt wird.
LastGenOutput Optionale Zeichenfolge. Der Name der Datei, die von einem die oft ausgegebene Befehlszeilen Datei-Generator erstellt wurde, der über diesem Element ausgeführt wurde.
CustomToolNamespace Optionale Zeichenfolge. Der Namespace, in dem ein beliebiger Datei-Generator, der über diesem Element ausgeführt wird, Code erstellen sollte.
Link Optionale Zeichenfolge. Der anzuzeigende Notationspfad, wenn sich die Datei physisch außerhalb des Einflusses des Projekts befindet.
PublishState Erforderliche Zeichenfolge. Der Inhalt kann einen der folgenden Veröffentlichungszustände aufweisen:

- Standard
- Enthalten
- Ausgeschlossen
- DataFile
- Voraussetzung
IsAssembly Optionaler boolescher Wert. Gibt an, ob die Datei eine Assembly ist.
Sichtbar Optionaler boolescher Wert. Gibt an, ob die Datei im Projektmappen-Explorer in Visual Studio angezeigt wird.
CopyToOutputDirectory Optionale Zeichenfolge. Bestimmt, ob die Datei in das Ausgabeverzeichnis kopiert werden soll. Gültige Werte:

1. Nie
2. Immer
3. PreserveNewest
TargetPath Optionale Zeichenfolge. Der Ausgabepfad (relativ zum Konfigurations- und/oder plattformspezifischen Ausgabeverzeichnis) eines Elements, einschließlich des Dateinamens. Dabei werden die Link-Metadaten berücksichtigt (sofern angegeben). Wenn TargetPath nicht bereitgestellt wird, wird er während des Buildvorgangs berechnet. Weitere Informationen finden Sie unter AssignTargetPath.

Keine

Stellt Dateien dar, die keine Rolle im Buildprozess haben sollen.

Elementmetadatenname Beschreibung
DependentUpon Optionale Zeichenfolge. Gibt die Datei an, von der diese Datei abhängt, um ordnungsgemäß zu kompilieren.
Generator Optionale Zeichenfolge. Der Name eines die oft ausgegebene Befehlszeilen Datei-Generators, der über diesem Element ausgeführt wird.
LastGenOutput Optionale Zeichenfolge. Der Name der Datei, die von einem die oft ausgegebene Befehlszeilen Datei-Generator erstellt wurde, der über diesem Element ausgeführt wurde.
CustomToolNamespace Optionale Zeichenfolge. Der Namespace, in dem ein beliebiger Datei-Generator, der über diesem Element ausgeführt wird, Code erstellen sollte.
Link Optionale Zeichenfolge. Der anzuzeigende Notationspfad, wenn sich die Datei physisch außerhalb des Einflusses des Projekts befindet.
Sichtbar Optionaler boolescher Wert. Gibt an, ob die Datei im Projektmappen-Explorer in Visual Studio angezeigt wird.
CopyToOutputDirectory Optionale Zeichenfolge. Bestimmt, ob die Datei in das Ausgabeverzeichnis kopiert werden soll. Gültige Werte:

1. Nie
2. Immer
3. PreserveNewest

AssemblyMetadata

Stellt Assemblyattribute dar, die als [AssemblyMetadata(key, value)] generiert werden sollen.

Elementmetadatenname Beschreibung
Einschließen Wird zum ersten Parameter (Schlüssel) im Attributkonstruktor AssemblyMetadataAttribute.
Wert Erforderliche Zeichenfolge. Wird zum zweiten Parameter (Wert) im Attributkonstruktor AssemblyMetadataAttribute.

Hinweis

Dieses Element gilt für Projekte mit Verwendung des SDK für .NET 5 (und .NET Core) und höhere Versionen.

InternalsVisibleTo

Gibt Assemblys an, die als [InternalsVisibleTo(..)]-Assemblyattribute ausgegeben werden sollen.

Elementmetadatenname Beschreibung
Einschließen Der Name der Assembly.
Schlüssel Optionale Zeichenfolge. Der öffentliche Schlüssel der Assembly.

Hinweis

Dieses Element gilt für Projekte mit Verwendung des SDK für .NET 5 (und .NET Core) und höhere Versionen.

BaseApplicationManifest

Stellt das Basisanwendungsmanifest für den Build dar und enthält Sicherheitsinformationen für die ClickOnce-Bereitstellung.

CodeAnalysisImport

Stellt das zu importierende FxCop-Projekt dar.

Importieren

Stellt Assemblys dar, deren Namespaces vom Visual Basic-Compiler importiert werden sollen.

Ordner

Dieses Element wird nur von Visual Studio als Platzhalter für einen leeren Ordner verwendet. Wenn der Ordner aufgefüllt wird, wird er durch ein anderes Element ersetzt.

Siehe auch