Freigeben über


Reservierte und bekannte Eigenschaften für MSBuild

MSBuild stellt eine Reihe vordefinierter Eigenschaften bereit, die Informationen über die Projektdatei und die MSBuild-Binärdateien speichern. Diese Eigenschaften werden auf die gleiche Weise wie andere MSBuild-Eigenschaften ausgewertet. Wenn Sie z. B. die MSBuildProjectFile Eigenschaft verwenden möchten, geben Sie folgendes ein $(MSBuildProjectFile).

MSBuild verwendet die Werte in der folgenden Tabelle, um reservierte und bekannte Eigenschaften zu definieren. Reservierte Eigenschaften können nicht außer Kraft gesetzt werden, und die meisten bekannten Eigenschaften sollten nicht außer in erweiterten Szenarien überschrieben werden.

Reservierte und bekannte Eigenschaften

Die Tabelle in diesem Abschnitt zeigt die vordefinierten MSBuild-Eigenschaften. Die Beispielspalte in der Tabelle bezieht sich auf die folgende Beispielprojektdatei, von der angenommen wird, dass sie sich befindet C:\Source\Repos\ConsoleApp1\ConsoleApp1, und zeigt ein Beispiel für die Werte, die diese Eigenschaften haben, wenn auf die Projektdatei zugegriffen wird, wenn MSBuild ohne spezielle Befehlszeilenoptionen aufgerufen wird.

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>
</Project>
Eigentum Reserviert oder bekannt Description Example
FrameworkSDKRoot Berühmt Pfad zum Stammordner für .NET Framework-Tools. C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\
InnerBuildProperty Berühmt Gibt den Eigenschaftsnamen an, der die Multitargeting-Builddimension definiert (gilt nur, wenn der aktuelle Build ein Graph-Build ist). TargetFramework
InnerBuildPropertyValues Berühmt Gibt den Eigenschaftsnamen an, der die möglichen Werte für das InnerBuildProperty Objekt enthält (gilt nur, wenn der aktuelle Build ein Graph-Build ist). TargetFrameworks
IsGraphBuild Berühmt True wenn es sich um einen Graph-Build handelt; d. h., die -graphBuild Option ist wirksam. Diese Option bedeutet, dass MSBuild ein Projektdiagramm erstellt und erstellt. Das Erstellen eines Diagramms umfasst das Identifizieren von Projektbezügen auf Formularabhängigkeiten. Das Erstellen dieses Diagramms umfasst den Versuch, Projektverweise vor den Projekten zu erstellen, die darauf verweisen, und unterscheidet sich von der herkömmlichen MSBuild-Planung.
MSBuildAssemblyVersion Reserviert Die Version von MSBuild-Assemblys, die zum Erstellen des Projekts verwendet werden. 17.0
MSBuildBinPath Reserviert Der absolute Pfad des Ordners, in dem sich die derzeit verwendeten MSBuild-Binärdateien befinden (z. B. C:\Windows\Microsoft.Net\Framework\<versionNumber>). Diese Eigenschaft ist nützlich, wenn Sie auf Dateien im MSBuild-Verzeichnis verweisen müssen.

Schließen Sie den endgültigen umgekehrten Schrägstrich nicht für diese Eigenschaft ein.
C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Current\Bin\amd64
MSBuildDisableFeaturesFromVersion Reserviert Wird von MSBuild und Microsoft SDKs zum Verwalten von Änderungswellen verwendet.
MSBuildExtensionsPath Berühmt In .NET Framework 4 eingeführt: Es gibt keinen Unterschied zwischen den Standardwerten und MSBuildExtensionsPathMSBuildExtensionsPath32. Sie können die Umgebungsvariable MSBUILDLEGACYEXTENSIONSPATH auf einen Wert ungleich NULL festlegen, um das Verhalten des Standardwerts MSBuildExtensionsPath in früheren Versionen zu aktivieren.

Im .NET Framework 3.5 und früheren Versionen verweist der Standardwert MSBuildExtensionsPath auf den Pfad des MSBuild-Unterordners unter dem Ordner \Programme\ oder \Programme (x86), je nach Bitanzahl des aktuellen Prozesses. Bei einem 32-Bit-Prozess auf einem 64-Bit-Computer verweist diese Eigenschaft beispielsweise auf den Ordner \Programme (x86). Bei einem 64-Bit-Prozess auf einem 64-Bit-Computer verweist diese Eigenschaft auf den Ordner "\Programme" .

Schließen Sie den endgültigen umgekehrten Schrägstrich nicht für diese Eigenschaft ein.

Dieser Speicherort ist ein nützlicher Ort, um benutzerdefinierte Zieldateien zu platzieren. Ihre Zieldateien können beispielsweise unter \Program Files\MSBuild\MyFiles\Northwind.targets installiert und dann mithilfe dieses XML-Codes in Projektdateien importiert werden:

<Import Project="$(MSBuildExtensionsPath)\MyFiles\Northwind.targets"/>
C:\Program Files\Microsoft Visual Studio\2022\MSBuild
MSBuildExtensionsPath32 Berühmt Der Pfad des MSBuild-Unterordners unter dem Ordner \Programme oder \Programme (x86). Der Pfad verweist immer auf den 32-Bit-Ordner \Programme (x86) auf einem 32-Bit-Computer und \Programme auf einem 64-Bit-Computer.". Siehe auch MSBuildExtensionsPath und MSBuildExtensionsPath64.

Schließen Sie den endgültigen umgekehrten Schrägstrich nicht für diese Eigenschaft ein.
C:\Program Files\Microsoft Visual Studio\2022\MSBuild
MSBuildExtensionsPath64 Berühmt Der Pfad des MSBuild-Unterordners unter dem Ordner "\Programme" . Bei einem 64-Bit-Computer verweist dieser Pfad immer auf den Ordner \Programme . Für einen 32-Bit-Computer ist dieser Pfad leer. Siehe auch MSBuildExtensionsPath und MSBuildExtensionsPath32.

Schließen Sie den endgültigen umgekehrten Schrägstrich nicht für diese Eigenschaft ein.
C:\Program Files\MSBuild
MSBuildFileVersion Reserviert Die vierteilige Version von MSBuild-Assemblys, die zum Erstellen des Projekts verwendet werden. 17.4.0.46505
MSBuildFrameworkToolsPath Berühmt Der Pfad zu den .NET Framework-Tools, mit denen die derzeit ausgeführte MSBuild erstellt wurde, mit einem nachgestellten Schrägstrich. C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\
MSBuildFrameworkToolsPath32 Berühmt Der Pfad zur 32-Bit-Version der .NET Framework-Tools für dieselbe Framework-Version, mit der die derzeit ausgeführte MSBuild-Version erstellt wurde, mit einem nachgestellten Schrägstrich. C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\
MSBuildFrameworkToolsPath64 Berühmt Der Pfad zur 64-Bit-Version der .NET Framework-Tools für dieselbe Framework-Version, mit der die derzeit ausgeführte MSBuild-Version erstellt wurde, mit einem nachgestellten Schrägstrich. C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\
MSBuildInteractive Reserviert true wenn MSBuild interaktiv ausgeführt wird, sodass Benutzereingaben möglich sind. Diese Einstellung wird durch die -interactive Befehlszeilenoption gesteuert. false
MSBuildLastTaskResult Reserviert true wenn der vorherige Vorgang ohne Fehler abgeschlossen wurde (auch wenn Warnungen vorhanden waren) oder false wenn der vorherige Vorgang Fehler hatte. Wenn in einem Vorgang ein Fehler auftritt, ist der Fehler in der Regel das letzte, was in diesem Projekt geschieht. Daher ist der Wert dieser Eigenschaft niemals false, außer in diesen Szenarien:

- Wenn das ContinueOnError Attribut des Task-Elements (MSBuild) auf WarnAndContinue (oder true) festgelegt ErrorAndContinueist.

– Wenn das Target Element ein OnError-Element (MSBuild) als untergeordnetes Element aufweist.
true
MSBuildNodeCount Reserviert Die maximale Anzahl gleichzeitiger Prozesse, die beim Erstellen verwendet werden. Dies ist der Wert, den Sie für "-maxcpucount " in der Befehlszeile angegeben haben. Wenn Sie "-maxcpucount " ohne Angabe eines Werts angegeben haben, gibt sie MSBuildNodeCount die Anzahl der Prozessoren auf dem Computer an. Weitere Informationen finden Sie unter Befehlszeilenverweis und Erstellen mehrerer Projekte parallel. 1
MSBuildOverrideTasksPath Berühmt Der Speicherort für die Suche nach .overridetasks Dateien, die verwendet werden können, um benutzerdefinierte Versionen von Standardaufgaben bereitzustellen. Siehe MSBuild-Aufgaben.

Schließen Sie den endgültigen umgekehrten Schrägstrich nicht in den Pfad ein.
MSBuildProgramFiles32 Reserviert Der Speicherort des 32-Bit-Programmordners; Beispiel : C:\Program Files (x86).

Schließen Sie den endgültigen umgekehrten Schrägstrich nicht für diese Eigenschaft ein.
C:\Program Files (x86)
MSBuildProjectDefaultTargets Reserviert Die vollständige Liste der Ziele, die DefaultTargets im Attribut des Project Elements angegeben sind. Das folgende Project Element würde z. B. einen MSBuildDefaultTargets Eigenschaftswert von A;B;C:

<Project DefaultTargets="A;B;C" >
Build
MSBuildProjectDirectory Reserviert Der absolute Pfad des Verzeichnisses, in dem sich die Projektdatei befindet, z. B. C:\MyCompany\MyProduct.

Schließen Sie den endgültigen umgekehrten Schrägstrich nicht für diese Eigenschaft ein.
C:\Source\Repos\ConsoleApp1\ConsoleApp1
MSBuildProjectDirectoryNoRoot Reserviert Der Wert der MSBuildProjectDirectory Eigenschaft, mit Ausnahme des Stammlaufwerks.

Schließen Sie den endgültigen umgekehrten Schrägstrich nicht für diese Eigenschaft ein.
Source\Repos\ConsoleApp1\ConsoleApp1
MSBuildProjectExtension Reserviert Die Dateinamenerweiterung der Projektdatei, einschließlich des Zeitraums; beispiel: .proj. .csproj
MSBuildProjectFile Reserviert Der vollständige Dateiname der Projektdatei, einschließlich der Dateinamenerweiterung; Beispiel: MyApp.proj. ConsoleApp1.csproj
MSBuildProjectFullPath Reserviert Der absolute Pfad und der vollständige Dateiname der Projektdatei, einschließlich der Dateinamenerweiterung; Beispiel : C:\MyCompany\MyProduct\MyApp.proj. c:\Source\Repos\ConsoleApp1\ConsoleApp1\ConsoleApp1.csproj
MSBuildProjectName Reserviert Der Dateiname der Projektdatei ohne Dateinamenerweiterung; Beispiel: MyApp. ConsoleApp1
MSBuildRuntimeType Reserviert Der Typ der laufzeit, die derzeit ausgeführt wird. Eingeführt in MSBuild 15. Der Wert kann nicht definiert sein (vor MSBuild 15), Full der angibt, dass MSBuild auf dem Desktop .NET Framework ausgeführt wird und angibt, Core dass MSBuild auf .NET Core (z. B. in dotnet build) ausgeführt wird oder Mono angibt, dass MSBuild auf Mono ausgeführt wird. Full
MSBuildStartupDirectory Reserviert Der absolute Pfad des Ordners, in dem MSBuild aufgerufen wird. Mithilfe dieser Eigenschaft können Sie alles unter einem bestimmten Punkt in einer Projektstruktur erstellen, ohne dirs.proj-Dateien< in jedem Verzeichnis zu erstellen>. Stattdessen haben Sie nur ein Projekt, z. B . c:\traversal.proj, wie hier gezeigt:

<Project ...> <ItemGroup> <ProjectFiles Include="$ (MSBuildStartupDirectory) **\*.csproj"/> </ItemGroup> <Target Name="build"> <MSBuild Projects="@(ProjectFiles)"/> </Target> </Project>

Um an einem beliebigen Punkt in der Struktur zu erstellen, geben Sie Folgendes ein:

msbuild c:\traversal.proj

Schließen Sie den endgültigen umgekehrten Schrägstrich nicht für diese Eigenschaft ein.
c:\Source\Repos\ConsoleApp1
MSBuildThisFile Reserviert Der Dateiname und der Dateierweiterungsteil von MSBuildThisFileFullPath. ConsoleApp1.csproj
MSBuildThisFileDirectory Reserviert Der Verzeichnisteil von MSBuildThisFileFullPath.

Schließen Sie den endgültigen umgekehrten Schrägstrich in den Pfad ein.
c:\Source\Repos\ConsoleApp1\ConsoleApp1\
MSBuildThisFileDirectoryNoRoot Reserviert Der Verzeichnisteil von MSBuildThisFileFullPath, mit Ausnahme des Stammlaufwerks.

Schließen Sie den endgültigen umgekehrten Schrägstrich in den Pfad ein.
Source\Repos\ConsoleApp1\ConsoleApp1\
MSBuildThisFileExtension Reserviert Der Dateinamenerweiterungsteil von MSBuildThisFileFullPath. .csproj
MSBuildThisFileFullPath Reserviert Der absolute Pfad des Projekts oder der Zieldatei, die das ausgeführte Ziel enthält.

Tipp: Sie können einen relativen Pfad in einer Zieldatei angeben, die relativ zur Zieldatei und nicht relativ zur ursprünglichen Projektdatei ist.
c:\Source\Repos\ConsoleApp1\ConsoleApp1\ConsoleApp1.csproj
MSBuildThisFileName Reserviert Der Dateinameteil von MSBuildThisFileFullPath, ohne die Dateinamenerweiterung. ConsoleApp1
MSBuildToolsPath Reserviert Der Installationspfad der MSBuild-Version, die dem Wert von MSBuildToolsVersionzugeordnet ist.

Schließen Sie den endgültigen umgekehrten Schrägstrich nicht in den Pfad ein.

Diese Eigenschaft kann nicht außer Kraft gesetzt werden.
C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Current\Bin\amd64
MSBuildToolsPath32 Berühmt Der Installationspfad der 32-Bit-MSBuild-Version, die dem Wert von MSBuildToolsVersionzugeordnet ist.

Schließen Sie den endgültigen umgekehrten Schrägstrich nicht in den Pfad ein.

Diese Eigenschaft kann nicht außer Kraft gesetzt werden.
C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Current\Bin
MSBuildToolsPath64 Berühmt Der Installationspfad der 64-Bit-MSBuild-Version, die dem Wert von MSBuildToolsVersionzugeordnet ist.

Schließen Sie den endgültigen umgekehrten Schrägstrich nicht in den Pfad ein.

Diese Eigenschaft kann nicht außer Kraft gesetzt werden.
C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Current\Bin\amd64
MSBuildToolsVersion Reserviert Die Version des MSBuild Toolset, das zum Erstellen des Projekts verwendet wird.

Hinweis: Ein MSBuild Toolset besteht aus Aufgaben, Zielen und Tools, die zum Erstellen einer Anwendung verwendet werden. Zu den Tools gehören Compiler wie csc.exe und vbc.exe. Weitere Informationen finden Sie unter Toolset (ToolsVersion)- und Standard- und benutzerdefinierte Toolsetkonfigurationen.
Current
MSBuildSDKsPath Berühmt Der Pfad MSBuild verwendet, um SDKs zu finden. C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Sdks
MSBuildSemanticVersion Reserviert Die vollständige Semver 2.0-Version von MSBuild-Assemblys, die zum Erstellen des Projekts verwendet werden. 17.4.0-preview-22465-05+6033e4c95
MSBuildUserExtensionsPath Berühmt Dieser Pfad stellt den Speicherort für den MSBuild-Installationsordner bereit. Sie kann zurückgesetzt werden, um lokale Anpassungen pro Benutzer bereitzustellen. Siehe "Anpassen Ihres lokalen Builds".

Schließen Sie den endgültigen umgekehrten Schrägstrich nicht in den Pfad ein.
MSBuildVersion Reserviert Die Version von MSBuild, die zum Erstellen des Projekts verwendet wird.

Diese Eigenschaft kann nicht außer Kraft gesetzt werden, andernfalls wird die Fehlermeldung MSB4004 - The 'MSBuildVersion' property is reserved, and can't be modified. zurückgegeben.
17.4.0
MSBuildWarningsAsErrors Berühmt Eine Liste der Warnungscodes, die als Fehler behandelt werden sollen. MSB1234;MSB5678
MSBuildWarningsAsMessages Berühmt Eine Liste der Warncodes, die als Nachrichten behandelt werden sollen. MSB1234;MSB5678
MSBuildWarningsNotAsErrors Berühmt Eine Liste der Warnungscodes, die nicht auf Fehler heraufgestuft werden sollten, auch wenn der -warnAsError Schalter so eingestellt ist, dass alle anderen Warnungen auf Fehler höhergestuft werden. Beachten Sie, dass sie keine Auswirkung hat, wenn dies nicht zutrifft. MSB1234;MSB5678
OS Berühmt Unter Windows wird dies vom Hostbetriebssystem geerbt. Mögliche Werte sind "Windows_NT" und "Unix"; kann auf andere Betriebssysteme als Windows auf unterschiedliche Werte festgelegt werden.
RoslynTargetsPath Berühmt Pfad zu Zielen für Roslyn-Compiler. C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Current\Bin\Roslyn
SDK35ToolsPath Berühmt Pfad zu .NET Framework 3.5-Tools.
SDK40ToolsPath Berühmt Pfad zu .NET Framework 4.0-Tools. C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\
VsInstallRoot Berühmt Der Visual Studio-Installationsordner. C:\Program Files\Microsoft Visual Studio\2022
WindowsSDK80Path Berühmt Pfad zum Windows 8 SDK.

Für C++-Projekte spezifische Eigenschaften

Die folgenden Eigenschaften stellen den Pfad zu den C++-MSBuild-Importdateien wie .props und .targets Dateien für verschiedene MSVC Build Tools (Toolset)-Versionen und Zielbetriebssysteme dar. Die Dateien in diesen Ordnern stellen die C++-Buildinfrastruktur dar und sind für die Erstellung eines beliebigen C++-Projekts mit MSBuild unerlässlich.

Eigentum Reserviert oder bekannt Description Example
AndroidTargetsPath Berühmt Pfad zu C++-MSBuild-Importdateien für Android-Builds. C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Microsoft\MDD\Android\V150\
iOSTargetsPath Berühmt Pfad zu C++-MSBuild-Importdateien für iOS-Builds. C:\Program Files\Microsoft Visual Studio\2022\Preview\MSBuild\Microsoft\MDD\iOS\V150\
VCTargetsPath Berühmt Pfad zu C++-MSBuild-Dateien, die das C++-Buildsystem unterstützen. C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Microsoft\VC\v170\
VCTargetsPath10 Berühmt Pfad zu C++-MSBuild-Dateien, die das Visual Studio 2010-Toolset unterstützen. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\
VCTargetsPath11 Berühmt Pfad zu den MSBuild-Importdateien für das Visual Studio 2012 (V110)-Toolset. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\
VCTargetsPath12 Berühmt Pfad zu den MSBuild-Importdateien für das Visual Studio 2013 (V120)-Toolset. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\
VCTargetsPath14 Berühmt Pfad zu den MSBuild-Importdateien für das Visual Studio 2015 (V140)-Toolset. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\

Namen, die mit MSBuild-Elementen in Konflikt geraten

Zusätzlich zu den obigen Können namen, die MSBuild-Sprachelementen entsprechen, nicht für benutzerdefinierte Eigenschaften, Elemente oder Elementmetadaten verwendet werden:

  • VisualStudioProject
  • Ziel
  • PropertyGroup
  • Output
  • ItemGroup
  • UsingTask
  • ProjectExtensions
  • OnError
  • ImportGroup
  • Wahl
  • Wann
  • Sonst

Siehe auch