File: ReservedPropertyKind.cs
Web Access
Project: Microsoft.Build.csproj (Microsoft.Build)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

namespace Microsoft.Build.Internal;

/// <summary>
///  Identifies a reserved MSBuild property.
/// </summary>
internal enum ReservedPropertyKind
{
    /// <summary>
    ///  Does not identify a reserved property.
    /// </summary>
    None = 0,

    /// <summary>
    ///  Identifies <c>MSBuildProjectDirectory</c>, the directory containing the project.
    /// </summary>
    ProjectDirectory,

    /// <summary>
    ///  Identifies <c>MSBuildProjectDirectoryNoRoot</c>, the project directory without its root.
    /// </summary>
    ProjectDirectoryNoRoot,

    /// <summary>
    ///  Identifies <c>MSBuildProjectFile</c>, the project file name including its extension.
    /// </summary>
    ProjectFile,

    /// <summary>
    ///  Identifies <c>MSBuildProjectExtension</c>, the project file extension.
    /// </summary>
    ProjectExtension,

    /// <summary>
    ///  Identifies <c>MSBuildProjectFullPath</c>, the full path to the project file.
    /// </summary>
    ProjectFullPath,

    /// <summary>
    ///  Identifies <c>MSBuildProjectName</c>, the project file name without its extension.
    /// </summary>
    ProjectName,

    /// <summary>
    ///  Identifies <c>MSBuildThisFileDirectory</c>, the directory containing the file being evaluated.
    /// </summary>
    ThisFileDirectory,

    /// <summary>
    ///  Identifies <c>MSBuildThisFileDirectoryNoRoot</c>, the current file's directory without its root.
    /// </summary>
    ThisFileDirectoryNoRoot,

    /// <summary>
    ///  Identifies <c>MSBuildThisFile</c>, the current file name including its extension.
    /// </summary>
    ThisFile,

    /// <summary>
    ///  Identifies <c>MSBuildThisFileExtension</c>, the current file extension.
    /// </summary>
    ThisFileExtension,

    /// <summary>
    ///  Identifies <c>MSBuildThisFileFullPath</c>, the full path to the file being evaluated.
    /// </summary>
    ThisFileFullPath,

    /// <summary>
    ///  Identifies <c>MSBuildThisFileName</c>, the current file name without its extension.
    /// </summary>
    ThisFileName,

    /// <summary>
    ///  Identifies <c>MSBuildBinPath</c>, the directory containing the MSBuild binaries.
    /// </summary>
    BinPath,

    /// <summary>
    ///  Identifies <c>MSBuildProjectDefaultTargets</c>, the project's default targets.
    /// </summary>
    ProjectDefaultTargets,

    /// <summary>
    ///  Identifies <c>MSBuildToolsPath</c>, the path to the active MSBuild toolset.
    /// </summary>
    ToolsPath,

    /// <summary>
    ///  Identifies <c>MSBuildToolsVersion</c>, the version of the active MSBuild toolset.
    /// </summary>
    ToolsVersion,

    /// <summary>
    ///  Identifies <c>MSBuildRuntimeType</c>, the runtime on which MSBuild is executing.
    /// </summary>
    RuntimeType,

    /// <summary>
    ///  Identifies <c>MSBuildStartupDirectory</c>, the directory from which MSBuild was started.
    /// </summary>
    StartupDirectory,

    /// <summary>
    ///  Identifies <c>MSBuildNodeCount</c>, the maximum number of build nodes.
    /// </summary>
    BuildNodeCount,

    /// <summary>
    ///  Identifies <c>MSBuildLastTaskResult</c>, whether the preceding task succeeded.
    /// </summary>
    LastTaskResult,

    /// <summary>
    ///  Identifies <c>MSBuildProgramFiles32</c>, the 32-bit Program Files directory.
    /// </summary>
    ProgramFiles32,

    /// <summary>
    ///  Identifies <c>MSBuildAssemblyVersion</c>, the version of the MSBuild assembly.
    /// </summary>
    AssemblyVersion,

    /// <summary>
    ///  Identifies <c>MSBuildVersion</c>, the current MSBuild version.
    /// </summary>
    Version,

    /// <summary>
    ///  Identifies <c>MSBuildInteractive</c>, whether MSBuild is running interactively.
    /// </summary>
    Interactive,

    /// <summary>
    ///  Identifies <c>MSBuildDisableFeaturesFromVersion</c>, the version from which features are disabled.
    /// </summary>
    DisableFeaturesFromVersion,
}