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.