MSBuild 提供了一组保留的属性,这些属性存储有关项目文件和 MSBuild 二进制文件的信息。 这些属性的计算方式与其他 MSBuild 属性相同。 例如,要使用 MSBuildProjectFile 属性,应键入下面的内容:
$(MSBuildProjectFile)

下表描述 MSBuild 保留属性。
Property | 说明 |
---|---|
MSBuildProjectDirectory | 项目文件所在目录的绝对路径,例如,C:\MyCompany\MyProduct。 |
MSBuildProjectFile | 项目文件的完整文件名(包括文件扩展名),例如,MyApp.proj。 |
MSBuildProjectExtension | 项目文件的文件扩展名(包括点号),例如,.proj。 |
MSBuildProjectFullPath | 项目文件的绝对路径和完整文件名,例如,C:\MyCompany\MyProduct\MyApp.proj。 |
MSBuildProjectName | 项目文件的文件名(不包括文件扩展名),例如,MyApp。 |
MSBuildBinPath | 当前正在使用的 MSBuild 二进制文件所在文件夹的绝对路径,例如,C:\Windows\Microsoft.Net\Framework\v2.0。 如果您必须引用 MSBuild 目录中的文件,此属性将非常有用。 |
MSBuildProjectDefaultTargets | Project 元素的 DefaultTargets 特性中指定的目标的完整列表。 例如,下面的 Project 元素的 MSBuildDefaultTargets 属性值为 A;B;C。 <Project DefaultTargets="A;B;C" > |
MSBuildExtensionsPath | MSBuild 子文件夹位于 \Program Files\ 或 \Program Files (x86) 文件夹下。 此路径始终指向与当前正在其中运行的窗口具有相同位数的程序文件。 例如,对于在 64 位的计算机上的 32 位窗口,路径指向 Program Files (x86) 文件夹。 对于在 64 位的计算机上的 64 位窗口,路径是程序 Program Files 文件夹。 另请参见 MSBuildExtensionsPath32 和 MSBuildExtensionsPath64。 此位置用于存放自定义目标文件。 例如,您的目标文件可能安装在 \Program Files\MSBuild\MyFiles\Northwind.targets 中,然后使用以下 XML 导入到项目文件中。 <Import Project="$(MSBuildExtensionsPath)\MyFiles\Northwind.targets"/> Note 您可以设置环境变量 MSBUILDLEGACYEXTENSIONSPATH 为非 null 值,以启用早期版本中的MSBuildExtensionsPath 的行为。 |
MSBuildExtensionsPath32 | MSBuild 子文件夹位于 \Program Files\ 或 \Program Files (x86) 文件夹下。 此路径始终指向 32 位程序文件文件夹。 例如,在 32 位的计算机上,路径是 Program Files 文件夹。 对于 64 位的计算机,路径是 Program Files (x86) 文件夹。 另请参见 MSBuildExtensionsPath 和 MSBuildExtensionsPath64。 |
MSBuildExtensionsPath64 | MSBuild 子文件夹位于 \Program Files\ 文件夹下。 此路径始终指向 64 位程序文件文件夹。 在 64 位计算机上。 对于 32 位计算机,此路径为空。 另请参见 MSBuildExtensionsPath 和 MSBuildExtensionsPath32。 |
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 |
