MSBuild 保留属性和已知属性
MSBuild 提供了一组预定义的属性,这些属性存储项目文件和 MSBuild 二进制文件的相关信息。 这些属性的计算方式与其他 MSBuild 属性相同。 例如,要使用 MSBuildProjectFile
属性,应键入 $(MSBuildProjectFile)
。
MSBuild 使用下表中的值预定义保留的属性和已知的属性。 无法重写保留的属性,并且大多数已知属性都不应被重写,除非是在高级场景中。
保留属性和已知属性
此部分中的表显示了 MSBuild 预定义属性。 表中的示例列与以下示例项目文件(假定位于 C:\Source\Repos\ConsoleApp1\ConsoleApp1
)相关,并显示了这些属性在以下情况下拥有的值的示例:在该项目文件中被访问时,以及在没有特殊命令行选项的情况下调用 MSBuild 时。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
</Project>
Property | 保留或已知 | 描述 | 示例 |
---|---|---|---|
FrameworkSDKRoot |
已知 | .NET Framework 工具的根文件夹的路径。 | C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\ |
InnerBuildProperty |
已知 | 指定定义多目标生成维度的属性名称(仅当当前生成是图形生成时才适用)。 | TargetFramework |
InnerBuildPropertyValues |
已知 | 指定保留 InnerBuildProperty 的可能值的属性名称(仅当当前生成是图形生成时才适用)。 |
TargetFrameworks |
IsGraphBuild |
已知 | 如果这是图形生成,则为 True ,即 -graphBuild 选项有效。 此选项意味着 MSBuild 构造和生成项目图。 构图涉及标识对窗体依赖项的项目引用。 生成该图涉及到尝试在引用它们的项目之前生成项目引用,这不同于传统的 MSBuild 计划。 |
|
MSBuildAssemblyVersion |
预留 | 用于生成项目的 MSBuild 程序集版本。 | 16.0 |
MSBuildBinPath |
预留 | 当前正在使用的 MSBuild 二进制文件所在文件夹的绝对路径(例如 C:\Windows\Microsoft.Net\Framework\<versionNumber>)。 如果必须引用 MSBuild 目录中的文件,此属性将非常有用。 不要在此属性上添加最终反斜杠。 |
C:\Program Files (x86)\Microsoft Visual Studio\2019\MSBuild\Current\Bin |
MSBuildDisableFeaturesFromVersion |
预留 | 由 MSBuild 和 Microsoft SDK 用于管理变更波次。 | |
MSBuildExtensionsPath |
已知 | 在 .NET Framework 4 中引入:MSBuildExtensionsPath 和 MSBuildExtensionsPath32 的默认值之间没有差异。 你可以设置环境变量 MSBUILDLEGACYEXTENSIONSPATH 为非 null 值,以启用早期版本中的 MSBuildExtensionsPath 的默认值的行为。在 .NET Framework 3.5 及更低版本中,根据当前进程的位数, MSBuildExtensionsPath 的默认值指向位于 \Program Files\ 或 \Program Files (x86) 文件夹下的 MSBuild 子文件夹路径。 例如,对于在 64 位计算机上的 32 位进程,此属性指向 \Program Files (x86) 文件夹。 对于在 64 位计算机上的 64 位进程,此属性指向 \Program Files 文件夹。不要在此属性上添加最终反斜杠。 此位置用于存放自定义目标文件。 例如,目标文件可能安装在 \Program Files\MSBuild\MyFiles\Northwind.targets 中,然后使用此 XML 代码导入到项目文件中: <Import Project="$(MSBuildExtensionsPath)\MyFiles\Northwind.targets"/> |
C:\Program Files (x86)\Microsoft Visual Studio\2019\MSBuild |
MSBuildExtensionsPath32 |
已知 | 位于 \Program Files 或 \Program Files (x86) 文件夹下的 MSBuild 子文件夹的路径。 此路径始终指向 32 位计算机上的 32 位 \Program Files (x86) 文件夹和 64 位计算机上的 \Program Files 。 另请参见 MSBuildExtensionsPath 和 MSBuildExtensionsPath64 。不要在此属性上添加最终反斜杠。 |
C:\Program Files (x86)\Microsoft Visual Studio\2019\MSBuild |
MSBuildExtensionsPath64 |
已知 | 位于 \Program Files 文件夹下的 MSBuild 子文件夹的路径。 对于 64 位计算机,此路径始终指向 \Program Files 文件夹。 对于 32 位计算机,此路径为空。 另请参见 MSBuildExtensionsPath 和 MSBuildExtensionsPath32 。不要在此属性上添加最终反斜杠。 |
C:\Program Files\MSBuild |
MSBuildFileVersion |
预留 | 用于生成项目的 MSBuild 程序集 4 部分版本。 | 16.11.0.30701 |
MSBuildFrameworkToolsPath |
已知 | 生成当前执行的 MSBuild 所用的 .NET Framework 工具的路径,带有尾部斜杠。 | C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\ |
MSBuildFrameworkToolsPath32 |
已知 | 生成当前执行的 MSBuild 所用的相同框架版本的 .NET Framework 工具 32 位版本的路径,带有尾部斜杠。 | C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\ |
MSBuildFrameworkToolsPath64 |
已知 | 生成当前执行的 MSBuild 所用的相同框架版本的 .NET Framework 工具 64 位版本的路径,带有尾部斜杠。 | C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\ |
MSBuildInteractive |
保留 | true ,如果 MSBuild 以交互方式运行,则允许用户输入。 此设置由 -interactive 命令行选项控制。 |
false |
MSBuildLastTaskResult |
保留 | true ,如果前一项任务完成没有出现任何错误(即使有警告);否则如果前一项任务出现错误,则为 false 。 通常,当任务中出现错误时,错误会发生在项目的最后。 因此,此属性的值决不会是 false ,但以下情况除外:- Task 元素 (MSBuild) 的 ContinueOnError 属性设置为 WarnAndContinue (或 true )或 ErrorAndContinue 时。- Target 将 OnError 元素 (MSBuild) 作为子元素时。 |
true |
MSBuildNodeCount |
保留 | 生成过程中使用的并发进程的最大数目。 这是在命令行中为 -maxcpucount 指定的值。 如果指定了 -maxcpucount 但没有指定值,MSBuildNodeCount 会指定计算机中的处理器数。 有关详细信息,请参阅命令行参考和并行生成多个项目。 |
1 |
MSBuildOverrideTasksPath |
已知 | 在该位置可搜索 .overridetasks 文件,这些文件可用于提供标准任务的自定义版本。 请参阅 MSBuild 任务。不要将最终的反斜杠包含在路径中。 |
|
MSBuildProgramFiles32 |
保留 | 32 位程序文件夹的位置;例如,C:\Program Files (x86)。 不要在此属性上添加最终反斜杠。 |
C:\Program Files (x86) |
MSBuildProjectDefaultTargets |
保留 | DefaultTargets 元素的 Project 特性中指定的目标的完整列表。 例如,下面的 Project 元素的 MSBuildDefaultTargets 属性值为 A;B;C :<Project DefaultTargets="A;B;C" > |
Build |
MSBuildProjectDirectory |
保留 | 项目文件所在目录的绝对路径,例如,C:\MyCompany\MyProduct。 不要在此属性上添加最终反斜杠。 |
C:\Source\Repos\ConsoleApp1\ConsoleApp1 |
MSBuildProjectDirectoryNoRoot |
保留 | MSBuildProjectDirectory 属性的值,但不包括根驱动器。不要在此属性上添加最终反斜杠。 |
Source\Repos\ConsoleApp1\ConsoleApp1 |
MSBuildProjectExtension |
保留 | 项目文件的文件扩展名(包括点号);例如,.proj。 | .csproj |
MSBuildProjectFile |
保留 | 项目文件的完整文件名(包括文件扩展名);例如,MyApp.proj。 | ConsoleApp1.csproj |
MSBuildProjectFullPath |
保留 | 项目文件的绝对路径和完整文件名(包括文件扩展名);例如,C:\MyCompany\MyProduct\MyApp.proj。 | c:\Source\Repos\ConsoleApp1\ConsoleApp1\ConsoleApp1.csproj |
MSBuildProjectName |
保留 | 项目文件的文件名(不包括文件扩展名);例如,MyApp。 | ConsoleApp1 |
MSBuildRuntimeType |
保留 | 当前正在执行的运行时类型。 在 MSBuild 15 中引入。 可能未定义值(MSBuild 15 之前),Full 指示 MSBuild 在桌面 .NET Framework 上运行,Core 指示 MSBuild 在 .NET Core 上运行(例如在 dotnet build 中),Mono 指示 MSBuild 在 Mono 上运行。 |
Full |
MSBuildSDKsPath |
已知 | MSBuild 用于查找 SDK 的路径。 | C:\Program Files (x86)\Microsoft Visual Studio\2019\MSBuild\Sdks |
MSBuildSemanticVersion |
预留 | 用于生成项目的 MSBuild 程序集的完整 semver 2.0 版本。 | 16.11.0-preview-21302-05+5e37cc992 |
MSBuildStartupDirectory |
保留 | 在其中调用 MSBuild 的文件夹的绝对路径。 通过使用此属性,你无需在每个目录中都创建 <dirs>.proj 文件就可以在项目树中的某个特定点下生成所有内容。 而你只有一个项目,例如 c:\traversal.proj(如此处所示):<Project ...> <ItemGroup> <ProjectFiles Include="$ (MSBuildStartupDirectory) **\*.csproj"/> </ItemGroup> <Target Name="build"> <MSBuild Projects="@(ProjectFiles)"/> </Target> </Project> 若要在该树中的任意一点生成,请键入: msbuild c:\traversal.proj 不要在此属性上添加最终反斜杠。 |
c:\Source\Repos\ConsoleApp1 |
MSBuildThisFile |
保留 | MSBuildThisFileFullPath 的文件名和文件扩展名部分。 |
ConsoleApp1.csproj |
MSBuildThisFileDirectory |
保留 | MSBuildThisFileFullPath 的目录部分。将最终反斜杠包括在路径中。 |
c:\Source\Repos\ConsoleApp1\ConsoleApp1\ |
MSBuildThisFileDirectoryNoRoot |
保留 | MSBuildThisFileFullPath 的目录部分不包括根驱动器。将最终反斜杠包括在路径中。 |
Source\Repos\ConsoleApp1\ConsoleApp1\ |
MSBuildThisFileExtension |
保留 | MSBuildThisFileFullPath 的文件扩展名部分。 |
.csproj |
MSBuildThisFileFullPath |
保留 | 项目或包含正在运行目标的目标文件的绝对路径。 提示:你可指定在相对于目标文件而不是相对于原始项目文件的目标文件中的相对路径。 |
c:\Source\Repos\ConsoleApp1\ConsoleApp1\ConsoleApp1.csproj |
MSBuildThisFileName |
保留 | MSBuildThisFileFullPath 的文件名部分,不包含文件扩展名。 |
ConsoleApp1 |
MSBuildToolsPath |
保留 | 与 MSBuildToolsVersion 的值相关联的 MSBuild 版本的安装路径。不要将最终的反斜杠包含在路径中。 不能重写此属性。 |
C:\Program Files (x86)\Microsoft Visual Studio\2019\MSBuild\Current\Bin\ |
MSBuildToolsPath32 |
已知 | 与 MSBuildToolsVersion 的值相关联的 32 位 MSBuild 版本的安装路径。不要将最终的反斜杠包含在路径中。 不能重写此属性。 |
C:\Program Files (x86)\Microsoft Visual Studio\2019\MSBuild\Current\Bin |
MSBuildToolsPath64 |
已知 | 与 MSBuildToolsVersion 的值相关联的 64 位 MSBuild 版本的安装路径。不要将最终的反斜杠包含在路径中。 不能重写此属性。 |
C:\Program Files (x86)\Microsoft Visual Studio\2019\MSBuild\Current\Bin\amd64 |
MSBuildToolsVersion |
保留 | 用于生成项目的 MSBuild 工具集版本。 注意:包含用于生成应用程序的任务、目标和工具的 MSBuild 工具集。 工具包括编译器,例如 csc.exe 和 vbc.exe 。 有关详细信息,请参阅工具集 (ToolsVersion) 和标准和自定义工具集配置。 |
Current |
MSBuildUserExtensionsPath |
已知 | 此路径提供 MSBuild 安装文件夹的位置。 可以重置它来提供每位用户的本地自定义。 请参阅自定义本地生成。 不要将最终的反斜杠包含在路径中。 |
|
MSBuildVersion |
保留 | 用于生成项目的 MSBuild 版本。 此属性不能重写,否则将返回 MSB4004 - The 'MSBuildVersion' property is reserved, and can't be modified. 错误消息。 |
16.11.0 |
MSBuildWarningsAsErrors |
已知 | 要视为错误的警告代码列表。 | MSB1234;MSB5678 |
MSBuildWarningsAsMessages |
已知 | 要视为消息的警告代码列表。 | MSB1234;MSB5678 |
MSBuildWarningsNotAsErrors |
已知 | 即使 -warnAsError 开关设置为将所有其他警告提升为错误,也不应将其提升为错误的警告代码列表。 请注意,如果该项不为 true,则不起作用。 |
MSB1234;MSB5678 |
OS |
已知 | 在 Windows 上,这是从主机操作系统继承的。 可能的值包括“Windows_NT”和“Unix”;可以在 Windows 以外的操作系统上设置为不同的值。 | |
RoslynTargetsPath |
已知 | Roslyn 编译器的路径。 | C:\Program Files\Microsoft Visual Studio\2019\MSBuild\Current\Bin\Roslyn |
SDK35ToolsPath |
已知 | .NET Framework 3.5 工具的路径。 | |
SDK40ToolsPath |
已知 | .NET Framework 4.0 工具的路径。 | C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\ |
VsInstallRoot |
已知 | Visual Studio 安装文件夹。 | C:\Program Files (x86)\Microsoft Visual Studio\2019 |
WindowsSDK80Path |
已知 |
Property | 保留或已知 | 描述 | 示例 |
---|---|---|---|
FrameworkSDKRoot |
已知 | .NET Framework 工具的根文件夹的路径。 | C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\ |
InnerBuildProperty |
已知 | 指定定义多目标生成维度的属性名称(仅当当前生成是图形生成时才适用)。 | TargetFramework |
InnerBuildPropertyValues |
已知 | 指定保留 InnerBuildProperty 的可能值的属性名称(仅当当前生成是图形生成时才适用)。 |
TargetFrameworks |
IsGraphBuild |
已知 | 如果这是图形生成,则为 True ,即 -graphBuild 选项有效。 此选项意味着 MSBuild 构造和生成项目图。 构图涉及标识对窗体依赖项的项目引用。 生成该图涉及到尝试在引用它们的项目之前生成项目引用,这不同于传统的 MSBuild 计划。 |
|
MSBuildAssemblyVersion |
预留 | 用于生成项目的 MSBuild 程序集版本。 | 17.0 |
MSBuildBinPath |
保留 | 当前正在使用的 MSBuild 二进制文件所在文件夹的绝对路径(例如 C:\Windows\Microsoft.Net\Framework\<versionNumber>)。 如果必须引用 MSBuild 目录中的文件,此属性将非常有用。 不要在此属性上添加最终反斜杠。 |
C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Current\Bin\amd64 |
MSBuildDisableFeaturesFromVersion |
预留 | 由 MSBuild 和 Microsoft SDK 用于管理变更波次。 | |
MSBuildExtensionsPath |
已知 | 在 .NET Framework 4 中引入:MSBuildExtensionsPath 和 MSBuildExtensionsPath32 的默认值之间没有差异。 你可以设置环境变量 MSBUILDLEGACYEXTENSIONSPATH 为非 null 值,以启用早期版本中的 MSBuildExtensionsPath 的默认值的行为。在 .NET Framework 3.5 及更低版本中,根据当前进程的位数, MSBuildExtensionsPath 的默认值指向位于 \Program Files\ 或 \Program Files (x86) 文件夹下的 MSBuild 子文件夹路径。 例如,对于在 64 位计算机上的 32 位进程,此属性指向 \Program Files (x86) 文件夹。 对于在 64 位计算机上的 64 位进程,此属性指向 \Program Files 文件夹。不要在此属性上添加最终反斜杠。 此位置用于存放自定义目标文件。 例如,目标文件可能安装在 \Program Files\MSBuild\MyFiles\Northwind.targets 中,然后使用此 XML 代码导入到项目文件中: <Import Project="$(MSBuildExtensionsPath)\MyFiles\Northwind.targets"/> |
C:\Program Files\Microsoft Visual Studio\2022\MSBuild |
MSBuildExtensionsPath32 |
已知 | 位于 \Program Files 或 \Program Files (x86) 文件夹下的 MSBuild 子文件夹的路径。 此路径始终指向 32 位计算机上的 32 位 \Program Files (x86) 文件夹和 64 位计算机上的 \Program Files 。 另请参见 MSBuildExtensionsPath 和 MSBuildExtensionsPath64 。不要在此属性上添加最终反斜杠。 |
C:\Program Files\Microsoft Visual Studio\2022\MSBuild |
MSBuildExtensionsPath64 |
已知 | 位于 \Program Files 文件夹下的 MSBuild 子文件夹的路径。 对于 64 位计算机,此路径始终指向 \Program Files 文件夹。 对于 32 位计算机,此路径为空。 另请参见 MSBuildExtensionsPath 和 MSBuildExtensionsPath32 。不要在此属性上添加最终反斜杠。 |
C:\Program Files\MSBuild |
MSBuildFileVersion |
预留 | 用于生成项目的 MSBuild 程序集 4 部分版本。 | 17.4.0.46505 |
MSBuildFrameworkToolsPath |
已知 | 生成当前执行的 MSBuild 所用的 .NET Framework 工具的路径,带有尾部斜杠。 | C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\ |
MSBuildFrameworkToolsPath32 |
已知 | 生成当前执行的 MSBuild 所用的相同框架版本的 .NET Framework 工具 32 位版本的路径,带有尾部斜杠。 | C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\ |
MSBuildFrameworkToolsPath64 |
已知 | 生成当前执行的 MSBuild 所用的相同框架版本的 .NET Framework 工具 64 位版本的路径,带有尾部斜杠。 | C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\ |
MSBuildInteractive |
保留 | true ,如果 MSBuild 以交互方式运行,则允许用户输入。 此设置由 -interactive 命令行选项控制。 |
false |
MSBuildLastTaskResult |
保留 | true ,如果前一项任务完成没有出现任何错误(即使有警告);否则如果前一项任务出现错误,则为 false 。 通常,当任务中出现错误时,错误会发生在项目的最后。 因此,此属性的值决不会是 false ,但以下情况除外:- Task 元素 (MSBuild) 的 ContinueOnError 属性设置为 WarnAndContinue (或 true )或 ErrorAndContinue 时。- Target 将 OnError 元素 (MSBuild) 作为子元素时。 |
true |
MSBuildNodeCount |
保留 | 生成过程中使用的并发进程的最大数目。 这是在命令行中为 -maxcpucount 指定的值。 如果指定了 -maxcpucount 但没有指定值,MSBuildNodeCount 会指定计算机中的处理器数。 有关详细信息,请参阅命令行参考和并行生成多个项目。 |
1 |
MSBuildOverrideTasksPath |
已知 | 在该位置可搜索 .overridetasks 文件,这些文件可用于提供标准任务的自定义版本。 请参阅 MSBuild 任务。不要将最终的反斜杠包含在路径中。 |
|
MSBuildProgramFiles32 |
保留 | 32 位程序文件夹的位置;例如,C:\Program Files (x86)。 不要在此属性上添加最终反斜杠。 |
C:\Program Files (x86) |
MSBuildProjectDefaultTargets |
保留 | DefaultTargets 元素的 Project 特性中指定的目标的完整列表。 例如,下面的 Project 元素的 MSBuildDefaultTargets 属性值为 A;B;C :<Project DefaultTargets="A;B;C" > |
Build |
MSBuildProjectDirectory |
保留 | 项目文件所在目录的绝对路径,例如,C:\MyCompany\MyProduct。 不要在此属性上添加最终反斜杠。 |
C:\Source\Repos\ConsoleApp1\ConsoleApp1 |
MSBuildProjectDirectoryNoRoot |
保留 | MSBuildProjectDirectory 属性的值,但不包括根驱动器。不要在此属性上添加最终反斜杠。 |
Source\Repos\ConsoleApp1\ConsoleApp1 |
MSBuildProjectExtension |
保留 | 项目文件的文件扩展名(包括点号);例如,.proj。 | .csproj |
MSBuildProjectFile |
保留 | 项目文件的完整文件名(包括文件扩展名);例如,MyApp.proj。 | ConsoleApp1.csproj |
MSBuildProjectFullPath |
保留 | 项目文件的绝对路径和完整文件名(包括文件扩展名);例如,C:\MyCompany\MyProduct\MyApp.proj。 | c:\Source\Repos\ConsoleApp1\ConsoleApp1\ConsoleApp1.csproj |
MSBuildProjectName |
保留 | 项目文件的文件名(不包括文件扩展名);例如,MyApp。 | ConsoleApp1 |
MSBuildRuntimeType |
保留 | 当前正在执行的运行时类型。 在 MSBuild 15 中引入。 可能未定义值(MSBuild 15 之前),Full 指示 MSBuild 在桌面 .NET Framework 上运行,Core 指示 MSBuild 在 .NET Core 上运行(例如在 dotnet build 中),Mono 指示 MSBuild 在 Mono 上运行。 |
Full |
MSBuildStartupDirectory |
保留 | 在其中调用 MSBuild 的文件夹的绝对路径。 通过使用此属性,你无需在每个目录中都创建 <dirs>.proj 文件就可以在项目树中的某个特定点下生成所有内容。 而你只有一个项目,例如 c:\traversal.proj(如此处所示):<Project ...> <ItemGroup> <ProjectFiles Include="$ (MSBuildStartupDirectory) **\*.csproj"/> </ItemGroup> <Target Name="build"> <MSBuild Projects="@(ProjectFiles)"/> </Target> </Project> 若要在该树中的任意一点生成,请键入: msbuild c:\traversal.proj 不要在此属性上添加最终反斜杠。 |
c:\Source\Repos\ConsoleApp1 |
MSBuildThisFile |
保留 | MSBuildThisFileFullPath 的文件名和文件扩展名部分。 |
ConsoleApp1.csproj |
MSBuildThisFileDirectory |
保留 | MSBuildThisFileFullPath 的目录部分。将最终反斜杠包括在路径中。 |
c:\Source\Repos\ConsoleApp1\ConsoleApp1\ |
MSBuildThisFileDirectoryNoRoot |
保留 | MSBuildThisFileFullPath 的目录部分不包括根驱动器。将最终反斜杠包括在路径中。 |
Source\Repos\ConsoleApp1\ConsoleApp1\ |
MSBuildThisFileExtension |
保留 | MSBuildThisFileFullPath 的文件扩展名部分。 |
.csproj |
MSBuildThisFileFullPath |
保留 | 项目或包含正在运行目标的目标文件的绝对路径。 提示:你可指定在相对于目标文件而不是相对于原始项目文件的目标文件中的相对路径。 |
c:\Source\Repos\ConsoleApp1\ConsoleApp1\ConsoleApp1.csproj |
MSBuildThisFileName |
保留 | MSBuildThisFileFullPath 的文件名部分,不包含文件扩展名。 |
ConsoleApp1 |
MSBuildToolsPath |
保留 | 与 MSBuildToolsVersion 的值相关联的 MSBuild 版本的安装路径。不要将最终的反斜杠包含在路径中。 不能重写此属性。 |
C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Current\Bin\amd64 |
MSBuildToolsPath32 |
已知 | 与 MSBuildToolsVersion 的值相关联的 32 位 MSBuild 版本的安装路径。不要将最终的反斜杠包含在路径中。 不能重写此属性。 |
C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Current\Bin |
MSBuildToolsPath64 |
已知 | 与 MSBuildToolsVersion 的值相关联的 64 位 MSBuild 版本的安装路径。不要将最终的反斜杠包含在路径中。 不能重写此属性。 |
C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Current\Bin\amd64 |
MSBuildToolsVersion |
保留 | 用于生成项目的 MSBuild 工具集版本。 注意:包含用于生成应用程序的任务、目标和工具的 MSBuild 工具集。 工具包括编译器,例如 csc.exe 和 vbc.exe 。 有关详细信息,请参阅工具集 (ToolsVersion) 和标准和自定义工具集配置。 |
Current |
MSBuildSDKsPath |
已知 | MSBuild 用于查找 SDK 的路径。 | C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Sdks |
MSBuildSemanticVersion |
预留 | 用于生成项目的 MSBuild 程序集的完整 semver 2.0 版本。 | 17.4.0-preview-22465-05+6033e4c95 |
MSBuildUserExtensionsPath |
已知 | 此路径提供 MSBuild 安装文件夹的位置。 可以重置它来提供每位用户的本地自定义。 请参阅自定义本地生成。 不要将最终的反斜杠包含在路径中。 |
|
MSBuildVersion |
保留 | 用于生成项目的 MSBuild 版本。 此属性不能重写,否则将返回 MSB4004 - The 'MSBuildVersion' property is reserved, and can't be modified. 错误消息。 |
17.4.0 |
MSBuildWarningsAsErrors |
已知 | 要视为错误的警告代码列表。 | MSB1234;MSB5678 |
MSBuildWarningsAsMessages |
已知 | 要视为消息的警告代码列表。 | MSB1234;MSB5678 |
MSBuildWarningsNotAsErrors |
已知 | 即使 -warnAsError 开关设置为将所有其他警告提升为错误,也不应将其提升为错误的警告代码列表。 请注意,如果该项不为 true,则不起作用。 |
MSB1234;MSB5678 |
OS |
已知 | 在 Windows 上,这是从主机操作系统继承的。 可能的值包括“Windows_NT”和“Unix”;可以在 Windows 以外的操作系统上设置为不同的值。 | |
RoslynTargetsPath |
已知 | Roslyn 编译器的目标的路径。 | C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Current\Bin\Roslyn |
SDK35ToolsPath |
已知 | .NET Framework 3.5 工具的路径。 | |
SDK40ToolsPath |
已知 | .NET Framework 4.0 工具的路径。 | C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\ |
VsInstallRoot |
已知 | Visual Studio 安装文件夹。 | C:\Program Files\Microsoft Visual Studio\2022 |
WindowsSDK80Path |
已知 | Windows 8 SDK 的路径。 |
特定于 C++ 项目的属性
以下属性表示各种 C++ 工具集版本和目标操作系统的 C++ MSBuild 导入文件(如 .props
和 .targets
文件)的路径。 这些文件夹中的文件表示 C++ 生成基础结构,对于使用 MSBuild 生成任何 C++ 项目至关重要。
Property | 保留或已知 | 描述 | 示例 |
---|---|---|---|
AndroidTargetsPath |
已知 | Android 版本的 C++ MSBuild 导入文件的路径。 | C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Microsoft\MDD\Android\V150\ |
iOSTargetsPath |
已知 | iOS 版本的 C++ MSBuild 导入文件的路径。 | C:\Program Files\Microsoft Visual Studio\2022\Preview\MSBuild\Microsoft\MDD\iOS\V150\ |
VCTargetsPath |
已知 | 支持 C++ 生成系统的 C++ MSBuild 文件的路径。 | C:\Program Files\Microsoft Visual Studio\2022\MSBuild\Microsoft\VC\v170\ |
VCTargetsPath10 |
已知 | 支持 Visual Studio 2010 工具集的 C++ MSBuild 文件的路径。 | C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\ |
VCTargetsPath11 |
已知 | Visual Studio 2012 (V110) 工具集的 MSBuild 导入文件的路径。 | C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\ |
VCTargetsPath12 |
已知 | Visual Studio 2013 (V120) 工具集的 MSBuild 导入文件的路径。 | C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\ |
VCTargetsPath14 |
已知 | Visual Studio 2015 (V140) 工具集的 MSBuild 导入文件的路径。 | C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\ |
与 MSBuild 元素冲突的名称
除上述名称外,对应于 MSBuild 语言元素的名称也不能用于用户定义的属性、项或项元数据:
- VisualStudioProject
- Target
- PropertyGroup
- Output
- ItemGroup
- UsingTask
- ProjectExtensions
- OnError
- ImportGroup
- Choose
- When
- Otherwise