Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In MSBuild ist ein Element ein benannter Verweis auf eine oder mehrere Zeichenfolgen, z. B. Dateinamen. Elemente enthalten Metadaten wie Dateinamen, Pfade und Versionsnummern. Alle Projekttypen in Visual Studio weisen mehrere gemeinsame Elemente auf. Diese Elemente werden in der Datei "Microsoft.Build.CommonTypes.xsd" definiert.
In diesem Artikel werden alle allgemeinen Projektelemente aufgeführt, die in MSBuild selbst definiert sind. Elemente und Eigenschaften, die vom .NET SDK bereitgestellt werden, werden in der MSBuild-Referenz für Microsoft.Net.Sdk dokumentiert.
Reference
Stellt einen .NET-Assemblyverweis (verwaltet) im Projekt dar.
Elementmetadatenname | Description |
---|---|
HintPath | Optional string. Relativer oder absoluter Pfad der Assembly. |
Name | Optional string. Der Anzeigename der Assembly, z. B. "System.Windows.Forms". |
FusionName | Optional string. 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 | Optional boolean. Gibt an, ob nur auf die Version im Fusionsnamen verwiesen werden soll. |
Aliases | Optional string. Alle Aliase für den Verweis. |
Private | Optional boolean. Gibt an, ob der Verweis in den Ausgabeordner kopiert werden soll. Dieses Attribut entspricht der Copy Local-Eigenschaft des Verweises, der sich in der Visual Studio-IDE befindet. |
Note
Der Reference
Elementtyp kann auch verwendet werden, um auf vorgenerierte Wrapperassemblys für systemeigene COM-Objekte zu verweisen, z. B. wenn Sie eine PIA (primäre Interopassembly) generiert haben tlbimp.exe
. Dieser Verweistyp ist eine geeignete Wahl, wenn Sie die COM-Wrapperassemblys selbst mit bekannten Eingaben generieren möchten, anstatt sich auf den Algorithmus von MSBuild zu verlassen, um COM-Wrapper zur Buildzeit zu generieren, wodurch eine Abhängigkeit vom Status der Systemregistrierung auf dem Buildcomputer eingeführt wird, auf dem MSBuild ausgeführt wird.
COMReference
Stellt einen COM-Komponentenverweis (nicht verwaltet) im Projekt dar. Dieses Element wird von der ResolveComReference-Aufgabe verwendet, die die Wrapperassemblys generiert oder bei EmbedInteropTypes
Verwendung die Interoptypen in Die Assembly einbettet. Die Verwendung dieses Referenztyps führt zu einer Abhängigkeit von der Systemregistrierung auf dem Buildcomputer, die zum Nachschlagen des referenzierten COM-Objekts verwendet wird. COM-Artefakte und COM-Einträge in der Registrierung können sich ändern, wenn Produkte auf dem Computer installiert, aktualisiert oder deinstalliert werden (oder wenn Sie denselben Build auf einem anderen Computer ausführen), möglicherweise eine andere Wrapperassembly erzeugen, auch wenn sich die Buildlogik nicht geändert hat.
Dieses Element gilt nicht für non-.NET Projekte.
Elementmetadatenname | Description |
---|---|
Name | Optional string. Der Anzeigename der Komponente. |
Guid | Required string. Eine GUID für die Komponente im Formular {12345678-1234-1234-1234-123456781234}. |
VersionMajor | Required string. Der Hauptteil der Versionsnummer der Komponente. Beispiel: "5", wenn die Vollversionsnummer "5.46" lautet. |
VersionMinor | Required string. Der Nebenteil der Versionsnummer der Komponente. Beispiel: "46", wenn die Vollversionsnummer "5.46" lautet. |
EmbedInteropTypes | Optional boolean. Wenn true, betten Sie die Interoperabilitätstypen aus diesem Verweis direkt in Ihre Assembly ein, anstatt eine Interop-DLL zu generieren. |
Lcid | Optional string. Die LocaleID für die Komponente. |
WrapperTool | Optional string. Der Name des Wrappertools, das für die Komponente verwendet wird. Values are: 1. primary 2. tlbimp 3. primaryortlbimp 4. aximp |
Isolated | Optional boolean. Gibt an, ob es sich bei der Komponente um eine reg-freie Komponente handelt. |
Weitere Informationen finden Sie unter "Problembehandlung bei COM-Verweisen".
COMFileReference
Stellt eine Liste der Typbibliotheken dar, auf die anhand des Dateipfads verwiesen werden soll, anstatt die Systemregistrierung zu verwenden. Dieser Verweistyp kann eine gute Alternative zu COMReference sein, wenn Sie eine Abhängigkeit von der Registrierung des Buildcomputers vermeiden möchten, entweder weil das Konto, das den Build ausführt, keine erhöhten Berechtigungen zum Bearbeiten der Registrierung auf dem Buildserver hat oder Sie nicht möchten, dass der Build eine Abhängigkeit vom Status der Registrierung hat. Wenn Sie COMFileReference
auf ein Artefakt auf einem Systempfad verweisen, hat Ihr Build eine Abhängigkeit vom Systemstatus. Wenn sich das Systemartefakt aufgrund einer Änderung des Zustands des Systems ändert, z. B. wenn Produkte installiert, aktualisiert oder deinstalliert werden (oder wenn Sie denselben Build auf einem anderen Computer ausführen), kann sich die Wrapperassembly ändern, auch wenn sich die Buildlogik nicht geändert hat. Um ein konsistentes Buildergebnis sicherzustellen, können Sie eine bekannte Kopie des COM-Artefaktes an einem Ort zwischenspeichern, den Sie steuern, z. B. unter Ihrem Projekt- oder Lösungsordner, und verweisen Sie darauf anstelle des Systemartefaktes.
Dieses Element gilt nicht für non-.NET Projekte.
Elementmetadatenname | Description |
---|---|
EmbedInteropTypes | Optional boolean. Wenn true, betten Sie die Interoperabilitätstypen aus diesem Verweis direkt in Ihre Assembly ein, anstatt eine Interop-DLL zu generieren. |
WrapperTool | Optional string. Der Name des Wrappertools, das für die Komponente verwendet wird. Values are: 1. primary 2. tlbimp 3. primaryortlbimp 4. aximp |
Weitere Informationen finden Sie unter "Problembehandlung bei COM-Verweisen".
NativeReference
Stellt eine systemeigene Manifestdatei oder einen Verweis auf eine solche Datei dar.
Elementmetadatenname | Description |
---|---|
Name | Required string. Der Basisname der Manifestdatei. |
HintPath | Required string. Der relative Pfad der Manifestdatei. |
ProjectReference
Stellt einen Verweis auf ein anderes Projekt dar.
ProjectReference
Elemente werden durch das Ziel in ResolveProjectReferences
Elemente umgewandelt, sodass alle gültigen Metadaten für einen Verweis auf ProjectReference
gültig sein können, wenn der Transformationsprozess sie nicht überschreibt.
Elementmetadatenname | Description |
---|---|
Name | Optional string. Der Anzeigename des Verweises. |
GlobalPropertiesToRemove | Optionaler string[] . Namen von Eigenschaften, die beim Erstellen des referenzierten Projekts entfernt werden sollen, z. B. RuntimeIdentifier;PackOnBuild . Der Standardwert ist leer. |
Project | Optional string. Eine GUID für den Verweis im Formular {12345678-1234-1234-1234-123456781234}. |
OutputItemType | Optional string. Elementtyp, in den 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 | Optional boolean. 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. Standardmäßig wird true . |
Private | Optional boolean. Gibt an, ob der Verweis in den Ausgabeordner kopiert werden soll. Dieses Attribut entspricht der Copy Local-Eigenschaft des Verweises, der sich in der Visual Studio-IDE befindet. |
SetConfiguration | Optional string. Legt die globale Eigenschaft Configuration für das referenzierte Projekt fest, z. B. Configuration=Release . |
SetPlatform | Optional string. Legt die globale Eigenschaft Platform für das referenzierte Projekt fest, z. B. Platform=AnyCPU . |
SetTargetFramework | Optional string. Legt die globale Eigenschaft TargetFramework für das referenzierte Projekt fest, z. B. TargetFramework=netstandard2.0 . |
SkipGetTargetFrameworkProperties | Optional boolean. Wenn true , wird das referenzierte Projekt erstellt, ohne den am besten kompatiblen TargetFramework Wert zu verhandeln. Standardmäßig wird false . |
Targets | Optionaler string[] . Durch Semikolons getrennte Liste der Ziele in den referenzierten Projekten, die erstellt werden sollen. Der Standardwert ist der Wert von $(ProjectReferenceBuildTargets) , der standardmäßig leer ist und die Standardziele angibt. Wenn Sie in Visual Studio (im Gegensatz zu MSBuild.exe oder dotnet build ) erstellen, wird dadurch nicht verhindert, dass Visual Studio die Standardziele des referenzierten Projekts erstellt. |
Note
Es gibt einen Unterschied zwischen der Funktionsweise von Projektverweise zwischen .NET Framework und .NET Core (einschließlich .NET 5 und höher). In .NET Framework-Projekten sind Projektverweise nicht transitiv. Wenn Project1 auf Project2 verweist und Project2 auf Project3 verweist, können Sie project3 nicht mit Project3 aus Project1 codieren. In .NET Core (einschließlich .NET 5 und höher) sind Projektverweise jedoch transitiv. Sie können code für Project3 in Project1.
Compile
Stellt die Quelldateien für den Compiler dar.
Elementmetadatenname | Description |
---|---|
DependentUpon | Optional string. Gibt die Datei an, von der diese Datei abhängig ist, um ordnungsgemäß zu kompilieren. |
AutoGen | Optional boolean. Gibt an, ob die Datei für das Projekt von der integrierten Entwicklungsumgebung (IDE) von Visual Studio generiert wurde. |
Link | Optional string. Der notationale Pfad, der angezeigt werden soll, wenn sich die Datei physisch außerhalb des Einflusses der Projektdatei befindet. |
Visible | Optional boolean. Gibt an, ob die Datei im Projektmappen-Explorer in Visual Studio angezeigt werden soll. |
CopyToOutputDirectory | Optional string. Bestimmt, ob die Datei in das Ausgabeverzeichnis kopiert werden soll. Values are: 1. Never 2. Always 3. PreserveNewest 4. IfDifferent |
EmbeddedResource
Stellt Ressourcen dar, die in die generierte Assembly eingebettet werden sollen.
Elementmetadatenname | Description |
---|---|
Culture | Optional string. Gibt die Kultur der Ressourcendatei an. Wenn angegeben, leitet der Buildprozess die Kultur nicht automatisch basierend auf der Dateierweiterung ab (die von den Kulturen abhängig ist, die für .NET/OS auf dem Computer verfügbar sind, auf dem der Build gehostet wird). Das Festlegen Culture={culture identifier} oder WithCulture=false Metadaten wird dringend empfohlen. |
WithCulture | Optional bool. Gibt an, dass die Datei kulturneutral ist und die Erkennung von Kultur durch AssignCulture Aufgabe übersprungen werden soll. Das Festlegen Culture={culture identifier} oder WithCulture=false Metadaten wird dringend empfohlen. |
DependentUpon | Optional string. Gibt die Datei an, von der diese Datei abhängig ist, um ordnungsgemäß zu kompilieren. |
Generator | Optional string. Der Name eines beliebigen Dateigenerators, der für dieses Element ausgeführt wird. |
LastGenOutput | Optional string. Der Name der Datei, die von jedem Dateigenerator erstellt wurde, der für dieses Element ausgeführt wurde. |
CustomToolNamespace | Optional string. Der Namespace, in dem jeder Dateigenerator, der für dieses Element ausgeführt wird, Code erstellen soll. |
Link | Optional string. Der Notationalpfad wird angezeigt, wenn sich die Datei physisch außerhalb des Einflusses des Projekts befindet. |
Visible | Optional boolean. Gibt an, ob die Datei im Projektmappen-Explorer in Visual Studio angezeigt werden soll. |
CopyToOutputDirectory | Optional string. Bestimmt, ob die Datei in das Ausgabeverzeichnis kopiert werden soll. Values are: 1. Never 2. Always 3. PreserveNewest 4. IfDifferent |
LogicalName | Required string. Der logische Name der eingebetteten Ressource. |
Content
Stellt Dateien dar, die nicht in das Projekt kompiliert werden, aber möglicherweise zusammen eingebettet oder veröffentlicht werden.
Elementmetadatenname | Description |
---|---|
DependentUpon | Optional string. Gibt die Datei an, von der diese Datei abhängig ist, um ordnungsgemäß zu kompilieren. |
Generator | Optional string. Der Name eines beliebigen Dateigenerators, der für dieses Element ausgeführt wird. |
LastGenOutput | Optional string. Der Name der Datei, die von einem Beliebigen Dateigenerator erstellt wurde, der für dieses Element ausgeführt wurde. |
CustomToolNamespace | Optional string. Der Namespace, in dem jeder Dateigenerator, der für dieses Element ausgeführt wird, Code erstellen soll. |
Link | Optional string. Der notationale Pfad, der angezeigt werden soll, wenn sich die Datei physisch außerhalb des Einflusses des Projekts befindet. |
PublishState | Required string. Der Veröffentlichungsstatus des Inhalts: - Default - Included - Excluded - DataFile - Prerequisite |
IsAssembly | Optional boolean. Gibt an, ob es sich bei der Datei um eine Assembly handelt. |
Visible | Optional boolean. Gibt an, ob die Datei im Projektmappen-Explorer in Visual Studio angezeigt werden soll. |
CopyToOutputDirectory | Optional string. Bestimmt, ob die Datei in das Ausgabeverzeichnis kopiert werden soll. Values are: 1. Never 2. Always 3. PreserveNewest 4. IfDifferent |
TargetPath | Optional string. Der Ausgabepfad (relativ zum konfigurations- und/oder plattformspezifischen Ausgabeverzeichnis) eines Elements, einschließlich des Dateinamens. Dies berücksichtigt die Link Metadaten, sofern angegeben. Wenn TargetPath nicht bereitgestellt wird, wird er während des Buildvorgangs berechnet. See AssignTargetPath. |
None
Stellt Dateien dar, die keine Rolle im Buildprozess haben sollten.
Elementmetadatenname | Description |
---|---|
DependentUpon | Optional string. Gibt die Datei an, von der diese Datei abhängig ist, um ordnungsgemäß zu kompilieren. |
Generator | Optional string. Der Name eines beliebigen Dateigenerators, der für dieses Element ausgeführt wird. |
LastGenOutput | Optional string. Der Name der Datei, die von jedem Dateigenerator erstellt wurde, der für dieses Element ausgeführt wurde. |
CustomToolNamespace | Optional string. Der Namespace, in dem jeder Dateigenerator, der für dieses Element ausgeführt wird, Code erstellen soll. |
Link | Optional string. Der notationale Pfad, der angezeigt werden soll, wenn sich die Datei physisch außerhalb des Einflusses des Projekts befindet. |
Visible | Optional boolean. Gibt an, ob die Datei im Projektmappen-Explorer in Visual Studio angezeigt werden soll. |
CopyToOutputDirectory | Optional string. Bestimmt, ob die Datei in das Ausgabeverzeichnis kopiert werden soll. Values are: 1. Never 2. Always 3. PreserveNewest 4. IfDifferent |
AssemblyMetadata
Stellt Assemblyattribute dar, die als [AssemblyMetadata(key, value)]
generiert werden sollen.
Elementmetadatenname | Description |
---|---|
Include | Wird der erste Parameter (der Schlüssel) im AssemblyMetadataAttribute Attributkonstruktor. |
Value | Required string. Wird der zweite Parameter (der Wert) im AssemblyMetadataAttribute Attributkonstruktor. |
Note
Dieses Element gilt für Projekte, die das SDK für .NET 5 (und .NET Core) und höhere Versionen verwenden.
InternalsVisibleTo
Gibt Assemblys an, die als [InternalsVisibleTo(..)]
Assemblyattribute ausgegeben werden sollen.
Elementmetadatenname | Description |
---|---|
Include | Der Assemblyname. |
Key | Optional string. Der öffentliche Schlüssel der Assembly. |
Note
Dieses Element gilt für Projekte, die das SDK für .NET 5 (und .NET Core) und höhere Versionen verwenden.
BaseApplicationManifest
Stellt das Basisanwendungsmanifest für den Build dar und enthält Sicherheitsinformationen zur ClickOnce-Bereitstellung.
CodeAnalysisImport
Stellt das zu importierende FxCop-Projekt dar.
Import
Stellt Assemblys dar, deren Namespaces vom Visual Basic-Compiler importiert werden sollen.
Folder
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.