MSBuild 保留属性

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 文件夹。 另请参见 MSBuildExtensionsPath32MSBuildExtensionsPath64

此位置用于存放自定义目标文件。 例如,您的目标文件可能安装在 \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) 文件夹。 另请参见 MSBuildExtensionsPathMSBuildExtensionsPath64

MSBuildExtensionsPath64

MSBuild 子文件夹位于 \Program Files\ 文件夹下。 此路径始终指向 64 位程序文件文件夹。 在 64 位计算机上。 对于 32 位计算机,此路径为空。 另请参见 MSBuildExtensionsPathMSBuildExtensionsPath32

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

请参见

概念

MSBuild 属性

其他资源

MSBuild 参考