MSBuild 保留属性

更新:2007 年 11 月

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

$(MSBuildProjectFile)

保留属性

下表描述 MSBuild 保留属性。

属性

说明

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\MSBuild\MyFiles\Northwind.targets 下,然后用下面的 XML 导入项目文件中。

<Import Project="$(MSBuildExtensionsPath)\MyFiles\Northwind.targets"/>

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 参考