Microsoft.Build.Framework
    
    
        
            
            This structure is used to return the result of the build and the target outputs.
            
        
        
            
            Did the build pass or fail
            
        
        
            
            Target outputs by project
            
        
        
            
            The constructor takes the result of the build and a list of the target outputs per project
            
        
        
            
            Did the build pass or fail. True means the build succeeded, False means the build failed.
            
        
        
            
            Outputs of the targets per project.
            
        
        
            
            Arguments for error events
            
        
        
            
            Subcategory of the error
            
        
        
            
            Error code
            
        
        
            
            File name
            
        
        
            
            The project which issued the event
            
        
        
            
            Line number
            
        
        
            
            Column number
            
        
        
            
            End line number
            
        
        
            
            End column number
            
        
        
            
            A link pointing to more information about the error
            
        
        
            
            This constructor allows all event data to be initialized
            
            event sub-category
            event code
            file associated with the event
            line number (0 if not applicable)
            column number (0 if not applicable)
            end line number (0 if not applicable)
            end column number (0 if not applicable)
            text message
            help keyword 
            name of event sender
        
        
            
            This constructor which allows a timestamp to be set
            
            event sub-category
            event code
            file associated with the event
            line number (0 if not applicable)
            column number (0 if not applicable)
            end line number (0 if not applicable)
            end column number (0 if not applicable)
            text message
            help keyword 
            name of event sender
            Timestamp when event was created
        
        
            
            This constructor which allows a timestamp to be set
            
            event sub-category
            event code
            file associated with the event
            line number (0 if not applicable)
            column number (0 if not applicable)
            end line number (0 if not applicable)
            end column number (0 if not applicable)
            text message
            help keyword 
            name of event sender
            Timestamp when event was created
            message arguments
        
        
            
            This constructor which allows a timestamp to be set
            
            event sub-category
            event code
            file associated with the event
            line number (0 if not applicable)
            column number (0 if not applicable)
            end line number (0 if not applicable)
            end column number (0 if not applicable)
            text message
            help keyword 
            A link pointing to more information about the error 
            name of event sender
            Timestamp when event was created
            message arguments
        
        
            
            Default constructor
            
        
        
            
            The custom sub-type of the event.
            
        
        
            
            Code associated with event.
            
        
        
            
            File associated with event.
            
        
        
            
            The project file which issued this event.
            
        
        
            
            Line number of interest in associated file.
            
        
        
            
            Column number of interest in associated file.
            
        
        
            
            Ending line number of interest in associated file.
            
        
        
            
            Ending column number of interest in associated file.
            
        
        
            
            A link pointing to more information about the error.
            
        
        
            
            Serializes to a stream through a binary writer
            
            Binary writer which is attached to the stream the event will be serialized into
        
        
            
            Deserializes to a stream through a binary writer
            
            Binary reader which the object will be deserialized from
            The version of the runtime the message packet was created from
        
        
            
            This class encapsulates the default data associated with build events. 
            It is intended to be extended/sub-classed.
            
        
        
            
            Message
            
        
        
            
            Help keyword
            
        
        
            
            Sender name
            
        
        
            
            Timestamp
            
        
        
            
            Thread id
            
        
        
            
            Build event context
            
        
        
            
            Default constructor
            
        
        
            
            This constructor allows all event data to be initialized
            
            text message
            help keyword 
            name of event sender
        
        
            
            This constructor allows all event data to be initialized while providing a custom timestamp.
            
            text message
            help keyword 
            name of event sender
            TimeStamp of when the event was created
        
        
            
            The time when event was raised.
            
        
        
            
            Exposes the private  field to derived types.
            Used for serialization. Avoids the side effects of calling the
             getter.
            
        
        
            
            The thread that raised event.  
            
        
        
            
            Text of event.
            
        
        
            
            Exposes the underlying message field without side-effects.
            Used for serialization.
            
        
        
            
            Custom help keyword associated with event.
            
        
        
            
            Name of the object sending this event.
            
        
        
            
            Event contextual information for the build event argument
            
        
        
            
            Serializes to a stream through a binary writer
            
            Binary writer which is attached to the stream the event will be serialized into
        
        
            
            Deserializes from a stream through a binary reader
            
            Binary reader which is attached to the stream the event will be deserialized from
            The version of the runtime the message packet was created from
        
        
            
            Run before the object has been deserialized
            UNDONE (Logging.)  Can this and the next function go away, and instead return a BuildEventContext.Invalid from
            the property if the buildEventContext field is null?
            
        
        
            
            Run after the object has been deserialized
            
        
        
            
            This is the default stub implementation, only here as a safeguard.
            Actual logic is injected from Microsoft.Build.dll to replace this.
            This is used by the Message property overrides to reconstruct the
            message lazily on demand.
            
        
        
            
            Shortcut method to mimic the original logic of creating the formatted strings.
            
            Name of the resource string.
            Optional list of arguments to pass to the formatted string.
            The concatenated formatted string.
        
        
            
            Will provide location information for an event, this is especially 
            needed in a multi processor environment
            
        
        
            
            Node event was in 
            
        
        
            
            Target event was in
            
        
        
             
            The node-unique project request context the event was in
             
        
        
            
            Id of the task the event was caused from
            
        
        
            
            The id of the project instance to which this event refers.
            
        
        
            
            The id of the submission.
            
        
        
            
            The id of the evaluation
            
        
        
            
            This is the original constructor.  No one should ever use this except internally for backward compatibility.
            
        
        
            
            Constructs a BuildEventContext with a specified project instance id.
            
        
        
            
            Constructs a BuildEventContext with a specific submission id
            
        
        
            
            Constructs a BuildEventContext
            
        
        
            
            Returns a default invalid BuildEventContext
            
        
        
            
            Retrieves the Evaluation id.
            
        
        
            
            NodeId where event took place
            
        
        
            
            Id of the target the event was in when the event was fired
            
        
        
            
            Retrieves the Project Context id.
            
        
        
            
            Retrieves the task id.
            
        
        
            
            Retrieves the project instance id.
            
        
        
            
            Retrieves the Submission id.
            
        
        
            
            Retrieves the BuildRequest id.  Note that this is not the same as the global request id on a BuildRequest or BuildResult.
            
        
        
            
            Indicates an invalid project context identifier.
            
        
        
            
            Indicates an invalid task identifier.
            
        
        
            
            Indicates an invalid target identifier.
            
        
        
            
            Indicates an invalid node identifier.
            
        
        
            
            Indicates an invalid project instance identifier.
            
        
        
            
            Indicates an invalid submission identifier.
            
        
        
            
            Indicates an invalid evaluation identifier.
            
        
        
            
            Retrieves a hash code for this BuildEventContext.
            
            
        
        
            
            Compare a BuildEventContext with this BuildEventContext. 
            A build event context is compared in the following way.
            
            1. If the object references are the same the contexts are equivalent
            2. If the object type is the same and the Id values in the context are the same, the contexts are equivalent
            
            
            
        
        
            
            Override == so the  equals comparison using this operator will be the same as
            .Equals
            
            Left hand side operand
            Right hand side operand
            True if the object values are identical, false if they are not identical
        
        
            
            Override != so the  equals comparison using this operator will be the same as
             ! Equals
            
            Left hand side operand
            Right hand side operand
            True if the object values are not identical, false if they are identical
        
        
            
            Verify the fields are identical
            
            BuildEventContext to compare to this instance
            True if the value fields are the same, false if otherwise
        
        
            
            This class represents the event arguments for build finished events.
            
        
        
            
            Whether the build succeeded
            
        
        
            
            Default constructor
            
        
        
            
            Constructor to initialize all parameters.
            Sender field cannot be set here and is assumed to be "MSBuild"
            
            text message
            help keyword 
            True indicates a successful build
        
        
            
            Constructor which allows the timestamp to be set
            
            text message
            help keyword 
            True indicates a successful build
            Timestamp when the event was created
        
        
            
            Constructor which allows the timestamp to be set
            
            text message
            help keyword 
            True indicates a successful build
            Timestamp when the event was created
            message arguments
        
        
            
            Serializes to a stream through a binary writer
            
            Binary writer which is attached to the stream the event will be serialized into
        
        
            
            Deserializes from a stream through a binary reader
            
            Binary reader which is attached to the stream the event will be deserialized from
            The version of the runtime the message packet was created from
        
        
            
            Succeeded is true if the build succeeded; false otherwise.
            
        
        
            
            This enumeration provides three levels of importance for messages.
            
        
        
            
            High importance, appears in less verbose logs
            
        
        
            
            Normal importance
            
        
        
            
            Low importance, appears in more verbose logs
            
        
        
            
            Arguments for message events
            
        
        
            
            Default constructor
            
        
        
            
            This constructor allows all event data to be initialized
            
            text message
            help keyword 
            name of event sender
            importance of the message
        
        
            
            This constructor allows a timestamp to be set
            
            text message
            help keyword 
            name of event sender
            importance of the message
            Timestamp when event was created
        
        
            
            This constructor allows a timestamp to be set
            
            text message
            help keyword 
            name of event sender
            importance of the message
            Timestamp when event was created
            message arguments
        
        
            
            This constructor allows all event data to be initialized
            
            event subcategory
            event code
            file associated with the event
            line number (0 if not applicable)
            column number (0 if not applicable)
            end line number (0 if not applicable)
            end column number (0 if not applicable)
            text message
            help keyword 
            name of event sender
            importance of the message
        
        
            
            This constructor allows timestamp to be set
            
            event subcategory
            event code
            file associated with the event
            line number (0 if not applicable)
            column number (0 if not applicable)
            end line number (0 if not applicable)
            end column number (0 if not applicable)
            text message
            help keyword 
            name of event sender
            importance of the message
            custom timestamp for the event
        
        
            
            This constructor allows timestamp to be set
            
            event subcategory
            event code
            file associated with the event
            line number (0 if not applicable)
            column number (0 if not applicable)
            end line number (0 if not applicable)
            end column number (0 if not applicable)
            text message
            help keyword 
            name of event sender
            importance of the message
            custom timestamp for the event
            message arguments
        
        
            
            Serializes to a stream through a binary writer
            
            Binary writer which is attached to the stream the event will be serialized into
        
        
            
            Deserializes from a stream through a binary reader
            
            Binary reader which is attached to the stream the event will be deserialized from
            The version of the runtime the message packet was created from
        
        
            
            Importance of the message
            
        
        
            
            The custom sub-type of the event.
            
        
        
            
            Code associated with event. 
            
        
        
            
            File associated with event.
            
        
        
            
            Line number of interest in associated file. 
            
        
        
            
            Column number of interest in associated file. 
            
        
        
            
            Ending line number of interest in associated file. 
            
        
        
            
            Ending column number of interest in associated file. 
            
        
        
            
            The project which was building when the message was issued.
            
        
        
            
            Arguments for build started events.
            
        
        
            
            Default constructor
            
        
        
            
            Constructor to initialize all parameters.
            Sender field cannot be set here and is assumed to be "MSBuild"
            
            text message
            help keyword 
        
        
            
            Constructor to initialize all parameters.
            Sender field cannot be set here and is assumed to be "MSBuild"
            
            text message
            help keyword 
            A dictionary which lists the environment of the build when the build is started.
        
        
            
            Constructor to allow timestamp to be set
            
            text message
            help keyword 
            Timestamp when the event was created
        
        
            
            Constructor to allow timestamp to be set
            
            text message
            help keyword 
            Timestamp when the event was created
            message args
        
        
            
            The environment which is used at the start of the build
            
        
        
             
            Base class for build status events.  This class is meant
            to be extended.  
             
             
            WARNING: marking a type [Serializable] without implementing 
            ISerializable imposes a serialization contract -- it is a 
            promise to never change the type's fields i.e. the type is 
            immutable; adding new fields in the next version of the type 
            without following certain special FX guidelines, can break both 
            forward and backward compatibility 
             
        
        
             
            Default constructor 
             
        
        
             
            This constructor allows event data to be initialized.  
             
            text message 
            help keyword  
            name of event sender 
        
        
             
            This constructor allows timestamp to be set
             
            text message 
            help keyword  
            name of event sender 
            Timestamp when event was created
        
        
             
            This constructor allows timestamp to be set
             
            text message 
            help keyword  
            name of event sender 
            Timestamp when event was created
            Optional arguments for formatting the message string.
        
        
            
            Arguments for warning events
            
        
        
            
            Default constructor
            
        
        
            
            This constructor allows all event data to be initialized
            
            event subcategory
            event code
            file associated with the event
            line number (0 if not applicable)
            column number (0 if not applicable)
            end line number (0 if not applicable)
            end column number (0 if not applicable)
            text message
            help keyword 
            name of event sender
        
        
            
            This constructor allows timestamp to be set
            
            event subcategory
            event code
            file associated with the event
            line number (0 if not applicable)
            column number (0 if not applicable)
            end line number (0 if not applicable)
            end column number (0 if not applicable)
            text message
            help keyword 
            name of event sender
            custom timestamp for the event
        
        
            
            This constructor allows timestamp to be set
            
            event subcategory
            event code
            file associated with the event
            line number (0 if not applicable)
            column number (0 if not applicable)
            end line number (0 if not applicable)
            end column number (0 if not applicable)
            text message
            help keyword 
            name of event sender
            custom timestamp for the event
            message arguments
        
        
            
            This constructor allows timestamp to be set
            
            event subcategory
            event code
            file associated with the event
            line number (0 if not applicable)
            column number (0 if not applicable)
            end line number (0 if not applicable)
            end column number (0 if not applicable)
            text message
            help keyword 
            A link pointing to more  information about the warning
            name of event sender
            custom timestamp for the event
            message arguments
        
        
            
            Serializes the Errorevent to a stream through a binary writer
            
            Binary writer which is attached to the stream the event will be serialized into
        
        
            
            Deserializes from a stream through a binary reader
            
            Binary reader which is attached to the stream the event will be deserialized from
            The version of the runtime the message packet was created from
        
        
            
            The custom sub-type of the event.
            
        
        
            
            Code associated with event.
            
        
        
            
            File associated with event.
            
        
        
            
            Line number of interest in associated file.
            
        
        
            
            Column number of interest in associated file.
            
        
        
            
            Ending line number of interest in associated file.
            
        
        
            
            Ending column number of interest in associated file.
            
        
        
            
            The project which was building when the message was issued.
            
        
        
            
            A link pointing to more information about the warning.
            
        
        
            
            Arguments for critical message events. These always have High importance.
            
        
        
            
            This constructor allows all event data to be initialized
            
            event subcategory
            event code
            file associated with the event
            line number (0 if not applicable)
            column number (0 if not applicable)
            end line number (0 if not applicable)
            end column number (0 if not applicable)
            text message
            help keyword 
            name of event sender
        
        
            
            This constructor allows timestamp to be set
            
            event subcategory
            event code
            file associated with the event
            line number (0 if not applicable)
            column number (0 if not applicable)
            end line number (0 if not applicable)
            end column number (0 if not applicable)
            text message
            help keyword 
            name of event sender
            custom timestamp for the event
        
        
            
            This constructor allows timestamp to be set
            
            event subcategory
            event code
            file associated with the event
            line number (0 if not applicable)
            column number (0 if not applicable)
            end line number (0 if not applicable)
            end column number (0 if not applicable)
            text message
            help keyword 
            name of event sender
            custom timestamp for the event
            message arguments
        
        
            
            Default constructor
            
        
        
            
            Arguments for custom build events.
            
        
        
            
            Default constructor 
            
        
        
            
            This constructor allows event data to be initialized.
            
            text message
            help keyword 
            name of sender
        
        
            
            This constructor allows event data to be initialized including timestamp.
            
            text message
            help keyword 
            name of sender
            Timestamp when event was created
        
        
            
            This constructor allows event data to be initialized including timestamp.
            
            text message
            help keyword 
            name of sender
            Timestamp when event was created
            Message arguments
        
        
            
            Arguments for the environment variable read event.
            
        
        
            
            Initializes an instance of the EnvironmentVariableReadEventArgs class.
            
        
        
            
            Initializes an instance of the EnvironmentVariableReadEventArgs class.
            
            The name of the environment variable that was read.
            The value of the environment variable that was read.
            Help keyword.
            The name of the sender of the event.
            The importance of the message.
        
        
            
            The name of the environment variable that was read.
            
        
        
            
            Arguments for external project finished events
            
        
        
            
            Default constructor
            
        
        
            
            Useful constructor
            
            text message
            help keyword
            name of the object sending this event
            project name
            true indicates project built successfully
        
        
            
            Useful constructor including the ability to set the timestamp
            
            text message
            help keyword
            name of the object sending this event
            project name
            true indicates project built successfully
            Timestamp when event was created
        
        
            
            Project name
            
        
        
            
            True if project built successfully, false otherwise
            
        
        
            
            Arguments for external project started events
            
        
        
            
            Default constructor
            
        
        
            
            Useful constructor
            
            text message
            help keyword
            name of the object sending this event
            project name
            targets we are going to build (empty indicates default targets)
        
        
            
            Useful constructor, including the ability to set the timestamp of the event
            
            text message
            help keyword
            name of the object sending this event
            project name
            targets we are going to build (empty indicates default targets)
            Timestamp when the event was created
        
        
            
            Project name
            
        
        
            
            Targets that we will build in the project. This may mean different things for different project types,
            our tasks will put something like Rebuild, Clean, etc. here. This may be null if the project is being
            built with the default target.
            
        
        
            
            This interface exposes functionality on the build engine
            that is required for task authoring.
            
        
        
            
            Allows tasks to raise error events to all registered loggers.
            The build engine may perform some filtering or
            pre-processing on the events, before dispatching them.
            
            Details of event to raise.
        
        
            
            Allows tasks to raise warning events to all registered loggers.
            The build engine may perform some filtering or
            pre-processing on the events, before dispatching them.
            
            Details of event to raise.
        
        
            
            Allows tasks to raise message events to all registered loggers.
            The build engine may perform some filtering or
            pre-processing on the events, before dispatching them.
            
            Details of event to raise.
        
        
            
            Allows tasks to raise custom events to all registered loggers.
            The build engine may perform some filtering or
            pre-processing on the events, before dispatching them.
            
            Details of event to raise.
        
        
            
            Returns true if the ContinueOnError flag was set to true for this particular task
            in the project file.
            
        
        
            
            Retrieves the line number of the task node within the project file that called it.
            
        
        
            
            Retrieves the line number of the task node within the project file that called it.
            
        
        
            
            Returns the full path to the project file that contained the call to this task.
            
        
        
            
            This method allows tasks to initiate a build on a
            particular project file. If the build is successful, the outputs
            (if any) of the specified targets are returned.
            
            
            1) it is acceptable to pass null for both targetNames and targetOutputs
            2) if no targets are specified, the default targets are built
            3) target outputs are returned as ITaskItem arrays indexed by target name
            
            The project to build.
            The targets in the project to build (can be null).
            A hash table of additional global properties to apply
                to the child project (can be null).  The key and value should both be strings.
            The outputs of each specified target (can be null).
            true, if build was successful
        
        
            
            This interface extends IBuildEngine to provide a method allowing building 
            project files in parallel.
            
        
        
            
            This property allows a task to query whether or not the system is running in single process mode or multi process mode.
            Single process mode (IsRunningMultipleNodes = false) is where the engine is initialized with the number of cpus = 1 and the engine is not a child engine.
            The engine is in multi process mode (IsRunningMultipleNodes = true) when the engine is initialized with a number of cpus > 1 or the engine is a child engine.
            
        
        
            
            This method allows tasks to initiate a build on a
            particular project file. If the build is successful, the outputs
            (if any) of the specified targets are returned.
            
            
            1) it is acceptable to pass null for both targetNames and targetOutputs
            2) if no targets are specified, the default targets are built
            3) target outputs are returned as ITaskItem arrays indexed by target name
            
            The project to build.
            The targets in the project to build (can be null).
            A hash table of additional global properties to apply
                to the child project (can be null).  The key and value should both be strings.
            The outputs of each specified target (can be null).
            A tools version recognized by the Engine that will be used during this build (can be null).
            true, if build was successful
        
        
            
            This method allows tasks to initiate a build on a
            particular project file. If the build is successful, the outputs
            (if any) of the specified targets are returned.
            
            
            1) it is acceptable to pass null for both targetNames and targetOutputs
            2) if no targets are specified, the default targets are built
            3) target outputs are returned as ITaskItem arrays indexed by target name
            
            The project to build.
            The targets in the project to build (can be null).
            An array of hashtables of additional global properties to apply
                to the child project (array entries can be null). 
                The key and value in the hashtable should both be strings.
            The outputs of each specified target (can be null).
            A tools version recognized by the Engine that will be used during this build (can be null).
            If true the operation will only be run if the cache doesn't
                                          already contain the result. After the operation the result is
                                          stored in the cache 
            If true the project will be unloaded once the 
                                                    operation is completed 
            true, if build was successful
        
        
            
            This interface extends IBuildEngine to provide a method allowing building 
            project files in parallel.
            
        
        
            
            This method allows tasks to initiate a build on a
            particular project file. If the build is successful, the outputs
            (if any) of the specified targets are returned.
            
            
            1) it is acceptable to pass null for both targetNames and targetOutputs
            2) if no targets are specified, the default targets are built
            
            
            The project to build.
            The targets in the project to build (can be null).
            An array of hashtables of additional global properties to apply
                to the child project (array entries can be null). 
                The key and value in the hashtable should both be strings.
            A list of global properties which should be removed.
            A tools version recognized by the Engine that will be used during this build (can be null).
            Should the target outputs be returned in the BuildEngineResult
            Returns a structure containing the success or failure of the build and the target outputs by project.
        
        
            
            Informs the system that this task has a long-running out-of-process component and other work can be done in the
            build while that work completes.
            
        
        
            
            Waits to reacquire control after yielding.
            
        
        
            
            Defines the lifetime of a registered task object.
            
        
        
            
            The registered object will be disposed when the build ends.
            
        
        
            
            The registered object will be disposed when the AppDomain is unloaded.
            
            
            The AppDomain to which this refers is the one in which MSBuild was launched,
            not the one in which the Task was launched.
            
        
        
            
            This interface extends IBuildEngine to provide a mechanism allowing tasks to 
            share data between task invocations.
            
        
        
            
            Registers an object with the system that will be disposed of at some specified time
            in the future.
            
            The key used to retrieve the object.
            The object to be held for later disposal.
            The lifetime of the object.
            The object may be disposed earlier that the requested time if
            MSBuild needs to reclaim memory.
            
            
            This method may be called by tasks which need to maintain state across task invocations,
            such as to cache data which may be expensive to generate but which is known not to change during the 
            build.  It is strongly recommended that  be set to true if the
            object will retain any significant amount of data, as this gives MSBuild the most flexibility to 
            manage limited process memory resources.
            
            
            The thread on which the object is disposed may be arbitrary - however it is guaranteed not to
            be disposed while the task is executing, even if  is set
            to true.
            
            
            If the object implements IDisposable, IDisposable.Dispose will be invoked on the object before
            discarding it.
            
            
        
        
            
            Retrieves a previously registered task object stored with the specified key.
            
            The key used to retrieve the object.
            The lifetime of the object.
            
            The registered object, or null is there is no object registered under that key or the object
            has been discarded through early collection.
            
        
        
            
            Unregisters a previously-registered task object.
            
            The key used to retrieve the object.
            The lifetime of the object.
            
            The registered object, or null is there is no object registered under that key or the object
            has been discarded through early collection.
            
        
        
            
            This interface extends IBuildEngine to log telemetry.
            
        
        
            
            Logs telemetry.
            
            The event name.
            The event properties.
        
        
            
            This interface extends  to allow tasks to get the current project's global properties.
            
        
        
            
            Gets the global properties for the current project.
            
            An  containing the global properties of the current project.
        
        
            
            This interface extends  to allow tasks to set whether they want to
            log an error when a task returns without logging an error.
            
        
        
            
            This interface extends  to let tasks know if a warning
            they are about to log will be converted into an error.
            
        
        
            
            Determines whether the logging service will convert the specified
            warning code into an error.
            
            The warning code to check.
            A boolean to determine whether the warning should be treated as an error.
        
        
            
            This interface extends  to provide resource management API to tasks.
            
        
        
            
            If a task launches multiple parallel processes, it should ask how many cores it can use.
            
            The number of cores a task can potentially use.
            The number of cores a task is allowed to use.
        
        
            
            A task should notify the build manager when all or some of the requested cores are not used anymore.
            When task is finished, the cores it requested are automatically released.
            
            Number of cores no longer in use.
        
        
            
            Interface for tasks which can be cancelled.
            
        
        
            
            Instructs the task to exit as soon as possible, or to immediately exit if Execute is invoked after this method.
            
            
            Cancel() may be called at any time after the task has been instantiated, even before  is called.
            Cancel calls may come in from any thread.  The implementation of this method should not block indefinitely.
            
        
        
            
            This interface is used to forward events to another loggers
            
        
        
            
            This method is called by the node loggers to forward the events to central logger
            
        
        
            
            Type of handler for MessageRaised events
            
        
        
            
            Type of handler for ErrorRaised events
            
        
        
            
            Type of handler for WarningRaised events
            
        
        
            
            Type of handler for CustomEventRaised events
            
        
        
            
            Type of handler for BuildStartedEvent events
            
        
        
            
            Type of handler for BuildFinishedEvent events
            
        
        
            
            Type of handler for ProjectStarted events
            
        
        
            
            Type of handler for ProjectFinished events
            
        
        
            
            Type of handler for TargetStarted events
            
        
        
            
            Type of handler for TargetFinished events
            
        
        
            
            Type of handler for TaskStarted events
            
        
        
            
            Type of handler for TaskFinished events
            
        
        
            
            Type of handler for BuildStatus events
            
        
        
            
            Type of handler for AnyEventRaised events
            
        
        
             
            This interface defines the events raised by the build engine.
            Loggers use this interface to subscribe to the events they
            are interested in receiving.
            
        
        
            
            this event is raised to log a message
            
        
        
            
            this event is raised to log an error
            
        
        
            
            this event is raised to log a warning
            
        
        
            
            this event is raised to log the start of a build
            
        
        
            
            this event is raised to log the end of a build
            
        
        
            
            this event is raised to log the start of a project build
            
        
        
            
            this event is raised to log the end of a project build
            
        
        
            
            this event is raised to log the start of a target build
            
        
        
            
            this event is raised to log the end of a target build
            
        
        
            
            this event is raised to log the start of task execution
            
        
        
            
            this event is raised to log the end of task execution
            
        
        
            
            this event is raised to log custom events
            
        
        
            
            this event is raised to log any build status event
            
        
        
            
            this event is raised to log any build event.  These events do not include telemetry.  To receive telemetry, you must attach to the  event.
            
        
        
            
            Type of handler for TelemetryLogged events
            
        
        
            
            This interface defines the events raised by the build engine.
            Loggers use this interface to subscribe to the events they
            are interested in receiving.
            
        
        
            
            this event is raised to when telemetry is logged.
            
        
        
            
            This interface defines the events raised by the build engine.
            Loggers use this interface to subscribe to the events they
            are interested in receiving.
            
        
        
            
            Should evaluation events include generated metaprojects?
            
        
        
            
            Should evaluation events include profiling information?
            
        
        
            
            Should task events include task inputs?
            
        
        
            
            This interface defines the events raised by the build engine.
            Loggers use this interface to subscribe to the events they
            are interested in receiving.
            
        
        
            
            Determines whether properties and items should be logged on 
            instead of .
            
        
        
            
            This interface extends the ILogger interface to provide a property which can be used to forward events
            to a logger running in a different process. It can also be used create filtering loggers.
            
        
        
            
            This property is set by the build engine to allow a node loggers to forward messages to the
            central logger
            
        
        
            
            This property is set by the build engine or node to inform the forwarding logger which node it is running on
            
        
        
            
            An interface implemented by tasks that are generated by ITaskFactory instances.
            
        
        
            
            Sets a value on a property of this task instance.
            
            The property to set.
            The value to set. The caller is responsible to type-coerce this value to match the property's .
            
            All exceptions from this method will be caught in the taskExecution host and logged as a fatal task error
            
        
        
            
            Gets the property value.
            
            The property to get.
            
            The value of the property, the value's type will match the type given by .
            
            
            MSBuild calls this method after executing the task to get output parameters.
            All exceptions from this method will be caught in the taskExecution host and logged as a fatal task error
            
        
        
            
            Enumeration of the levels of detail of an event log.
            
            
            The level of detail (i.e. verbosity) of an event log is entirely controlled by the logger generating the log -- a logger
            will be directed to keep its verbosity at a certain level, based on user preferences, but a logger is free to choose the
            events it logs for each verbosity level.
            
            LOGGING GUIDELINES FOR EACH VERBOSITY LEVEL:
            1) Quiet -- only display a summary at the end of build
            2) Minimal -- only display errors, warnings, high importance events and a build summary
            3) Normal -- display all errors, warnings, high importance events, some status events, and a build summary
            4) Detailed -- display all errors, warnings, high and normal importance events, all status events, and a build summary
            5) Diagnostic -- display all events, and a build summary
            
        
        
            
            The most minimal output
            
        
        
            
            Relatively little output
            
        
        
            
            Standard output. This should be the default if verbosity level is not set
            
        
        
            
            Relatively verbose, but not exhaustive
            
        
        
            
            The most verbose and informative verbosity
            
        
        
            
            This interface defines a "logger" in the build system. A logger subscribes to build system events. All logger classes must
            implement this interface to be recognized by the build engine.
            
        
        
            
            The verbosity level directs the amount of detail that appears in a logger's event log. Though this is only a
            recommendation based on user preferences, and a logger is free to choose the exact events it logs, it is still
            important that the guidelines for each level be followed, for a good user experience.
            
            The verbosity level.
        
        
            
            This property holds the user-specified parameters to the logger. If parameters are not provided, a logger should revert
            to defaults. If a logger does not take parameters, it can ignore this property.
            
            The parameter string (can be null).
        
        
            
            Called by the build engine to allow loggers to subscribe to the events they desire.
            
            The events available to loggers.
        
        
            
            Called by the build engine to allow loggers to release any resources they may have allocated at initialization time,
            or during the build.
            
        
        
            
            Provides a way to efficiently enumerate item metadata
            
        
        
            
            Returns a list of metadata names and unescaped values, including
            metadata from item definition groups, but not including built-in
            metadata. Implementations should be low-overhead as the method
            is used for serialization (in node packet translator) as well as
            in the binary logger.
            
        
        
            
            This interface defines a "parallel aware logger" in the build system. A parallel aware logger 
            will accept a cpu count and be aware that any cpu count greater than 1 means the events will
            be received from the logger from each cpu as the events are logged. 
            
        
        
            
            Initializes the current  instance.
            
            
            
        
        
            
            Interface for exposing a ProjectElement to the appropriate loggers
            
        
        
            
            Gets the name of the associated element. 
            Useful for display in some circumstances.
            
        
        
            
            The outer markup associated with this project element
            
        
        
            
            This interface defines a "task" in the build system. A task is an atomic unit of build operation. All task classes must
            implement this interface to be recognized by the build engine.
            
        
        
            
            This property is set by the build engine to allow a task to call back into it.
            
            The interface on the build engine available to tasks.
        
        
            
            The build engine sets this property if the host IDE has associated a host object with this particular task.
            
            The host object instance (can be null).
        
        
            
            This method is called by the build engine to begin task execution. A task uses the return value to indicate
            whether it was successful. If a task throws an exception out of this method, the engine will automatically
            assume that the task has failed.
            
            true, if successful
        
        
            
            Interface that a task factory Instance should implement
            
        
        
            
            Gets the name of the factory.
            
            The name of the factory.
        
        
            
            Gets the type of the task this factory will instantiate.  Implementations must return a value for this property.
            
        
        
            
            Initializes this factory for instantiating tasks with a particular inline task block.
            
            Name of the task.
            The parameter group.
            The task body.
            The task factory logging host.
            A value indicating whether initialization was successful.
            
            MSBuild engine will call this to initialize the factory. This should initialize the factory enough so that the factory can be asked
            whether or not task names can be created by the factory.
            
            The taskFactoryLoggingHost will log messages in the context of the target where the task is first used.
            
            
        
        
            
            Get the descriptions for all the task's parameters.
            
            A non-null array of property descriptions.
        
        
            
            Create an instance of the task to be used.
            
            
            The task factory logging host will log messages in the context of the task.
            
            
            The generated task, or null if the task failed to be created.
            
        
        
            
            Cleans up any context or state that may have been built up for a given task.
            
            The task to clean up.
            
            For many factories, this method is a no-op.  But some factories may have built up
            an AppDomain as part of an individual task instance, and this is their opportunity
            to shutdown the AppDomain.
            
        
        
            
            Interface that a task factory Instance should implement if it wants to be able to
            use new UsingTask parameters such as Runtime and Architecture. 
            
        
        
            
            Initializes this factory for instantiating tasks with a particular inline task block and a set of UsingTask parameters.  MSBuild
            provides an implementation of this interface, TaskHostFactory, that uses "Runtime", with values "CLR2", "CLR4", "CurrentRuntime", 
            and "*" (Any); and "Architecture", with values "x86", "x64", "CurrentArchitecture", and "*" (Any).  An implementer of ITaskFactory2 
            can choose to use these pre-defined Runtime and Architecture values, or can specify new values for these parameters.  
            
            Name of the task.
            Special parameters that the task factory can use to modify how it executes tasks, 
            such as Runtime and Architecture.  The key is the name of the parameter and the value is the parameter's value. This 
            is the set of parameters that was set on the UsingTask using e.g. the UsingTask Runtime and Architecture parameters.
            The parameter group.
            The task body.
            The task factory logging host.
            A value indicating whether initialization was successful.
            
            MSBuild engine will call this to initialize the factory. This should initialize the factory enough so that the 
            factory can be asked whether or not task names can be created by the factory.  If a task factory implements ITaskFactory2, 
            this Initialize method will be called in place of ITaskFactory.Initialize.
            
            The taskFactoryLoggingHost will log messages in the context of the target where the task is first used.
            
            
        
        
            
            Create an instance of the task to be used, with an optional set of "special" parameters set on the individual task invocation using 
            the MSBuildRuntime and MSBuildArchitecture default task parameters.  MSBuild provides an implementation of this interface, 
            TaskHostFactory, that uses "MSBuildRuntime", with values "CLR2", "CLR4", "CurrentRuntime", and "*" (Any); and "MSBuildArchitecture", 
            with values "x86", "x64", "CurrentArchitecture", and "*" (Any).  An implementer of ITaskFactory2 can choose to use these pre-defined 
            MSBuildRuntime and MSBuildArchitecture values, or can specify new values for these parameters.  
            
            
            The task factory logging host will log messages in the context of the task.
            
            
            Special parameters that the task factory can use to modify how it executes tasks, such as Runtime and Architecture.  
            The key is the name of the parameter and the value is the parameter's value.  This is the set of parameters that was 
            set to the task invocation itself, via e.g. the special MSBuildRuntime and MSBuildArchitecture parameters.  
            
            
            If a task factory implements ITaskFactory2, MSBuild will call this method instead of ITaskFactory.CreateTask.  
            
            
            The generated task, or null if the task failed to be created.
            
        
        
            
            This empty interface is used to pass host objects from an IDE to individual
            tasks.  Depending on the task itself and what kinds parameters and functionality
            it exposes, the task should define its own interface that inherits from this one, 
            and then use that interface to communicate with the host.
            
        
        
            
            This interface defines a project item that can be consumed and emitted by tasks.
            
        
        
            
            Gets or sets the item "specification" e.g. for disk-based items this would be the file path.
            
            
            This should be named "EvaluatedInclude" but that would be a breaking change to this interface.
            
            The item-spec string.
        
        
            
            Gets the names of all the metadata on the item.
            Includes the built-in metadata like "FullPath".
            
            The list of metadata names.
        
        
            
            Gets the number of pieces of metadata on the item. Includes
            both custom and built-in metadata.
            
            Count of pieces of metadata.
        
        
            
            Allows the values of metadata on the item to be queried.
            
            The name of the metadata to retrieve.
            The value of the specified metadata.
        
        
            
            Allows a piece of custom metadata to be set on the item.
            
            The name of the metadata to set.
            The metadata value.
        
        
            
            Allows the removal of custom metadata set on the item.
            
            The name of the metadata to remove.
        
        
            
            Allows custom metadata on the item to be copied to another item.
            
            
            RECOMMENDED GUIDELINES FOR METHOD IMPLEMENTATIONS:
            1) this method should NOT copy over the item-spec
            2) if a particular piece of metadata already exists on the destination item, it should NOT be overwritten
            3) if there are pieces of metadata on the item that make no semantic sense on the destination item, they should NOT be copied
            
            The item to copy metadata to.
        
        
            
            Get the collection of custom metadata. This does not include built-in metadata.
            
            
            RECOMMENDED GUIDELINES FOR METHOD IMPLEMENTATIONS:
            1) this method should return a clone of the metadata
            2) writing to this dictionary should not be reflected in the underlying item.
            
            Dictionary of cloned metadata
        
        
            
            This interface adds escaping support to the ITaskItem interface.
            
        
        
            
            Gets or sets the item include value e.g. for disk-based items this would be the file path.
            
            
            Taking the opportunity to fix the property name, although this doesn't
            make it obvious it's an improvement on ItemSpec.
            
        
        
            
            Allows the values of metadata on the item to be queried.
            
            
            Taking the opportunity to fix the property name, although this doesn't
            make it obvious it's an improvement on GetMetadata.
            
        
        
            
            Allows a piece of custom metadata to be set on the item.  Assumes that the value passed
            in is unescaped, and escapes the value as necessary in order to maintain its value. 
            
            
            Taking the opportunity to fix the property name, although this doesn't
            make it obvious it's an improvement on SetMetadata.
            
        
        
            
            ITaskItem2 implementation which returns a clone of the metadata on this object.
            Values returned are in their original escaped form. 
            
            The cloned metadata, with values' escaping preserved.
        
        
            
            Provides a way to efficiently enumerate custom metadata of an item, without built-in metadata.
            
            TaskItem implementation to return metadata from
            WARNING: do NOT use List`1.AddRange to iterate over this collection.
            CopyOnWriteDictionary from Microsoft.Build.Utilities.v4.0.dll is broken.
            A non-null (but possibly empty) enumerable of item metadata.
        
        
            
            Stores strings for parts of a message delaying the formatting until it needs to be shown
            
        
        
            
            Stores the message arguments.
            
        
        
            
            Exposes the underlying arguments field to serializers.
            
        
        
            
            Stores the original culture for String.Format.
            
        
        
            
            Non-serializable CultureInfo object
            
        
        
            
            Lock object.
            
        
        
            
            This constructor allows all event data to be initialized.
            
            text message.
            help keyword.
            name of event sender.
        
        
            
            This constructor that allows message arguments that are lazily formatted.
            
            text message.
            help keyword.
            name of event sender.
            Timestamp when event was created.
            Message arguments.
        
        
            
            Default constructor.
            
        
        
            
            Gets the formatted message.
            
        
        
            
            Serializes to a stream through a binary writer.
            
            Binary writer which is attached to the stream the event will be serialized into.
        
        
            
            Deserializes from a stream through a binary reader.
            
            Binary reader which is attached to the stream the event will be deserialized from.
            The version of the runtime the message packet was created from
        
        
            
            Formats the given string using the variable arguments passed in.
            
            PERF WARNING: calling a method that takes a variable number of arguments is expensive, because memory is allocated for
            the array of arguments -- do not call this method repeatedly in performance-critical scenarios
            
            This method is thread-safe.
            The culture info for formatting the message.
            The string to format.
            Optional arguments for formatting the given string.
            The formatted string.
        
        
            
            Deserialization does not call any constructors, not even
            the parameterless constructor. Therefore since we do not serialize
            this field, we must populate it here.
            
        
        
            
            This attribute is used to mark tasks that need to be run in their own app domains. The build engine will create a new app
            domain each time it needs to run such a task, and immediately unload it when the task is finished.
            
        
        
            
            Default constructor.
            
        
        
            
            Exception that should be thrown by a logger when it cannot continue.
            Allows a logger to force the build to stop in an explicit way, when, for example, it 
            receives invalid parameters, or cannot write to disk.
            
        
        
            
            Default constructor.
            
            
            This constructor only exists to satisfy .NET coding guidelines. Use the rich constructor instead.
            
        
        
            
            Creates an instance of this exception using the specified error message.
            
            Message string
        
        
            
            Creates an instance of this exception using the specified error message and inner exception.
            
            Message string
            Inner exception. Can be null
        
        
            
            Creates an instance of this exception using rich error information.
            
            Message string
            Inner exception. Can be null
            Error code
            Help keyword for host IDE. Can be null
        
        
            
            Protected constructor used for (de)serialization. 
            If we ever add new members to this class, we'll need to update this.
            
            Serialization info
            Streaming context
        
        
            
            ISerializable method which we must override since Exception implements this interface
            If we ever add new members to this class, we'll need to update this.
            
            Serialization info
            Streaming context
        
        
            
            Gets the error code associated with this exception's message (not the inner exception).
            
            The error code string.
        
        
            
            Gets the F1-help keyword associated with this error, for the host IDE.
            
            The keyword string.
        
        
            
            Arguments for the metaproject generated event.
            
        
        
            
            Raw xml representing the metaproject.
            
        
        
            
            Initializes a new instance of the MetaprojectGeneratedEventArgs class.
            
        
        
            
            This attribute is used by task writers to designate certain task parameters as "outputs". The build engine will only allow
            task parameters (i.e. the task class' .NET properties) that are marked with this attribute to output data from a task. Project
            authors can only use parameters marked with this attribute in a task's <Output> tag. All task parameters, including those
            marked with this attribute, may be treated as inputs to a task by the build engine.
            
        
        
            
            Default constructor.
            
        
        
            
            Assigns unique evaluation ids. Thread safe.
            
        
        
            
            Returns a unique evaluation id
            
            
            The id is guaranteed to be unique across all running processes.
            Additionally, it is monotonically increasing for callers on the same process id
            
        
        
            
            Evaluation main phases used by the profiler
            
            
            Order matters since the profiler pretty printer orders profiled items from top to bottom using 
            the pass they belong to
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
            The kind of the evaluated location being tracked
            
        
        
            
        
        
            
        
        
            
        
        
            
            Represents a location for different evaluation elements tracked by the EvaluationProfiler.
            
        
        
            
            Default descriptions for locations that are used in case a description is not provided
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
            Constructs a generic evaluation location
            
            
            Used by serialization/deserialization purposes
            
        
        
            
            Constructs a generic evaluation location based on a (possibly null) parent Id.
            
            
            A unique Id gets assigned automatically
            Used by serialization/deserialization purposes
            
        
        
            
            Constructs a generic evaluation location with no parent.
            
            
            A unique Id gets assigned automatically
            Used by serialization/deserialization purposes
            
        
        
            
            An empty location, used as the starting instance.
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
            Result of profiling an evaluation
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
            Result of timing the evaluation of a given element at a given location
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
        
        
            
            Arguments for the project evaluation finished event.
            
        
        
            
            Initializes a new instance of the ProjectEvaluationFinishedEventArgs class.
            
        
        
            
            Initializes a new instance of the ProjectEvaluationFinishedEventArgs class.
            
        
        
            
            Gets or sets the full path of the project that started evaluation.
            
        
        
            
            Global properties used during this evaluation.
            
        
        
            
            Final set of properties produced by this evaluation.
            
        
        
            
            Final set of items produced by this evaluation.
            
        
        
            
            The result of profiling a project.
            
            
            Null if profiling is not turned on
            
        
        
            
            Arguments for the project evaluation started event.
            
        
        
            
            Initializes a new instance of the ProjectEvaluationStartedEventArgs class.
            
        
        
            
            Initializes a new instance of the ProjectEvaluationStartedEventArgs class.
            
        
        
            
            Gets or sets the full path of the project that started evaluation.
            
        
        
            
            Arguments for project finished events
            
        
        
            
            Default constructor 
            
        
        
            
            This constructor allows event data to be initialized.
            Sender is assumed to be "MSBuild".
            
            text message
            help keyword 
            name of the project
            true indicates project built successfully
        
        
            
            This constructor allows event data to be initialized.
            Sender is assumed to be "MSBuild". This constructor allows the timestamp to be set as well
            
            text message
            help keyword 
            name of the project
            true indicates project built successfully
            Timestamp when the event was created
        
        
            
            Serializes to a stream through a binary writer
            
            Binary writer which is attached to the stream the event will be serialized into
        
        
            
            Deserializes from a stream through a binary reader
            
            Binary reader which is attached to the stream the event will be deserialized from
            The version of the runtime the message packet was created from
        
        
            
            Project name
            
        
        
            
            True if project built successfully, false otherwise
            
        
        
            
            Arguments for the project imported event.
            
        
        
            
            Initializes a new instance of the ProjectImportedEventArgs class.
            
        
        
            
            Initializes a new instance of the ProjectImportedEventArgs class.
            
        
        
            
            Gets or sets the original value of the Project attribute.
            
        
        
            
            Gets or sets the full path to the project file that was imported. Will be null
            if the import statement was a glob and no files matched, or the condition (if any) evaluated
            to false.
            
        
        
            
            Gets or sets if this import was ignored. Ignoring imports is controlled by
            ProjectLoadSettings. This is only set when an import would have been included
            but was ignored to due being invalid. This does not include when a globbed import returned
            no matches, or a conditioned import that evaluated to false.
            
        
        
            
            Arguments for project started events
            
        
        
            
            Indicates an invalid project identifier.
            
        
        
            
            Default constructor 
            
        
        
            
            This constructor allows event data to be initialized.
            Sender is assumed to be "MSBuild".
            
            text message
            help keyword 
            project name
            targets we are going to build (empty indicates default targets)
            list of properties
            list of items
        
        
            
            This constructor allows event data to be initialized.
            Sender is assumed to be "MSBuild".
            
            project id
            text message
            help keyword 
            project name
            targets we are going to build (empty indicates default targets)
            list of properties
            list of items
            event context info for the parent project
        
        
            
            This constructor allows event data to be initialized.
            Sender is assumed to be "MSBuild".
            
            project id
            text message
            help keyword 
            project name
            targets we are going to build (empty indicates default targets)
            list of properties
            list of items
            event context info for the parent project
            An  containing global properties.
            The tools version.
        
        
            
            This constructor allows event data to be initialized. Also the timestamp can be set
            Sender is assumed to be "MSBuild".
            
            text message
            help keyword 
            project name
            targets we are going to build (empty indicates default targets)
            list of properties
            list of items
            The  of the event.
        
        
            
            This constructor allows event data to be initialized.
            Sender is assumed to be "MSBuild".
            
            project id
            text message
            help keyword 
            project name
            targets we are going to build (empty indicates default targets)
            list of properties
            list of items
            event context info for the parent project
            The  of the event.
        
        
            
            Gets the identifier of the project.
            
        
        
            
            Event context information, where the event was fired from in terms of the build location
            
        
        
            
            The name of the project file
            
        
        
            
            Project name
            
        
        
            
            Targets that we will build in the project
            
        
        
            
            Targets that we will build in the project
            
        
        
            
            Gets the set of global properties used to evaluate this project.
            
        
        
            
            Gets the set of global properties used to evaluate this project.
            
        
        
            
            Gets the tools version used to evaluate this project.
            
        
        
            
            List of properties in this project. This is a live, read-only list.
            
        
        
            
            List of items in this project. This is a live, read-only list.
            
        
        
            
            Serializes to a stream through a binary writer
            
            Binary writer which is attached to the stream the event will be serialized into
        
        
            
            Deserializes from a stream through a binary reader
            
            Binary reader which is attached to the stream the event will be deserialized from
            The version of the runtime the message packet was created from
        
        
            
            The argument for a property initial value set event.
            
        
        
            
            Creates an instance of the  class.
            
        
        
            
            Creates an instance of the  class.
            
            The name of the property.
            The value of the property.
            The source of the property.
            The message of the property.
            The help keyword.
            The sender name of the event.
            The importance of the message.
        
        
            
            The name of the property.
            
        
        
            
            The value of the property.
            
        
        
            
            The source of the property.
            
        
        
            
            The argument for a property reassignment event.
            
        
        
            
            Creates an instance of the PropertyReassignmentEventArgs class.
            
        
        
            
            Creates an instance of the PropertyReassignmentEventArgs class.
            
            The name of the property whose value was reassigned.
            The previous value of the reassigned property.
            The new value of the reassigned property.
            The location of the reassignment.
            The message of the reassignment event.
            The help keyword of the reassignment.
            The sender name of the reassignment event.
            The importance of the message.
        
        
            
            The name of the property whose value was reassigned.
            
        
        
            
            The previous value of the reassigned property.
            
        
        
            
            The new value of the reassigned property.
            
        
        
            
            The location of the reassignment.
            
        
        
            
            This class defines the attribute that a task writer can apply to a task's property to declare the property to be a
            required property.
            
        
        
            
            Default constructor.
            
        
        
            
            When marked with the RequiredRuntimeAttribute, a task indicates that it has stricter 
            runtime requirements than a regular task - this tells MSBuild that it will need to potentially 
            launch a separate process for that task if the current runtime does not match the version requirement.
            This attribute is currently non-functional since there is only one version of the CLR that is
            capable of running MSBuild v2.0 or v3.5 - the runtime v2.0 
            
        
        
            
            Constructor taking a version, such as "v2.0". 
            
        
        
            
            Returns the runtime version the attribute was constructed with,
            e.g., "v2.0"
            
        
        
            
            This attribute is used to mark a task class as explicitly not being required to run in the STA for COM.
            
        
        
            
            Default constructor.
            
        
        
            
            This attribute is used to mark a task class as being required to run in a Single Threaded Apartment for COM.
            
        
        
            
            Default constructor.
            
        
        
            
                An abstract interface class to providing real-time logging and status while resolving
                an SDK.
            
        
        
            
                Log a build message to MSBuild.
            
            Message string.
            Optional message importances. Default to low.
        
        
            
                Represents a software development kit (SDK) that is referenced in a <Project /> or <Import /> element.
            
        
        
            
                Initializes a new instance of the SdkReference class.
            
            The name of the SDK.
            The version of the SDK.
            Minimum SDK version required by the project.
        
        
            
                Gets the name of the SDK.
            
        
        
            
                Gets the version of the SDK.
            
        
        
            
                Gets the minimum version required. This value is specified by the project to indicate the minimum version of the
                SDK that is required in order to build. This is useful in order to produce an error message if a name match can
                be found but no acceptable version could be resolved.
            
        
        
            
            
            
            
        
        
            
                Attempts to parse the specified string as a .  The expected format is:
                    SDK, SDK/Version, or SDK/min=MinimumVersion
                Values are not required to specify a version or MinimumVersion.
            
            An SDK name and version to parse in the format "SDK/Version,min=MinimumVersion".
            A parsed  if the specified value is a valid SDK name.
            true if the SDK name was successfully parsed, otherwise false.
        
        
            
        
        
            
        
        
            
        
        
            
                An abstract interface for classes that can resolve a Software Development Kit (SDK).
            
        
        
            
                Name of the SDK resolver to be displayed in build output log.
            
        
        
            
                Gets the self-described resolution priority order. MSBuild will sort resolvers
                by this value.
            
        
        
            
                Resolves the specified SDK reference.
            
            A  containing the referenced SDKs be resolved.
            Context for resolving the SDK.
            Factory class to create an 
            
                An  containing the resolved SDKs or associated error / reason
                the SDK could not be resolved.  Return null if the resolver is not
                applicable for a particular .
                
                    Note: You must use the  to return a result.
                
            
        
        
            
                Context used by an  to resolve an SDK.
            
        
        
            
            Gets a value indicating if the resolver is allowed to be interactive.
            
        
        
            
            Gets a value indicating if the resolver is running in Visual Studio.
            
        
        
            
                Logger to log real-time messages back to MSBuild.
            
        
        
            
                Path to the project file being built.
            
        
        
            
                Path to the solution file being built, if known. May be null.
            
        
        
            
                Version of MSBuild currently running.
            
                File version based on commit height from our public git repository. This is informational
                and not equal to the assembly version.
            
            
        
        
            
                Gets or sets any custom state for current build.  This allows resolvers to maintain state between resolutions.
                This property is not thread-safe.
            
        
        
            
                An abstract interface class to indicate SDK resolver success or failure.
                
                    Note: Use  to create instances of this class. Do not
                    inherit from this class.
                
            
        
        
            
                Indicates the resolution was successful.
            
        
        
            
                Resolved path to the SDK.
            
                Null if  == false
            
        
        
            
                Resolved version of the SDK.
                Can be null or empty if the resolver did not provide a version (e.g. a path based resolver)
            
                Null if  == false
            
        
        
            
            Additional resolved SDK paths beyond the one specified in 
            
            
            This allows an SDK resolver to return multiple SDK paths, which will all be imported.
            
        
        
            
            Properties that should be added to the evaluation.  This allows an SDK resolver to provide information to the build
            
        
        
            
            Items that should be added to the evaluation.  This allows an SDK resolver to provide information to the build
            
        
        
            
                The Sdk reference
            
        
        
            
                An abstract interface class provided to  to create an
                 object indicating success / failure.
            
        
        
            
                Create an  object indicating success resolving the SDK.
            
            Path to the SDK.
            Version of the SDK that was resolved.
            Optional warnings to display during resolution.
            
        
        
            
                Create an  object indicating success resolving the SDK.
            
            Path to the SDK.
            Version of the SDK that was resolved.
            Properties to set in the evaluation
            Items to add to the evaluation
            Optional warnings to display during resolution.
            
        
        
            
                Create an  object indicating success.
            
            
            This overload allows any number (zero, one, or many) of SDK paths to be returned.  This means a "successful" result
            may not resolve to any SDKs.  The resolver can also supply properties or items to communicate information to the build.  This
            can allow resolvers to report SDKs that could not be resolved without hard-failing the evaluation, which can allow other
            components to take more appropriate action (for example installing optional workloads or downloading NuGet SDKs).
            
            SDK paths which should be imported
            SDK version which should be imported
            Properties to set in the evaluation
            Items to add to the evaluation
            Optional warnings to display during resolution.
            
        
        
            
                Create an  object indicating failure resolving the SDK.
            
            
                Errors / reasons the SDK could not be resolved. Will be logged as a
                build error if no other SdkResolvers were able to indicate success.
            
            
            
        
        
            
            The value of an item and any associated metadata to be added by an SDK resolver.  See 
            
        
        
            
            Creates an 
            
            The value (itemspec) for the item
            A dictionary of item metadata.  This should be created with  for the comparer.
        
        
            
            The reason that a target was built by its parent target.
            
        
        
            
            This wasn't built on because of a parent.
            
        
        
            
            The target was part of the parent's BeforeTargets list.
            
        
        
            
            The target was part of the parent's DependsOn list.
            
        
        
            
            The target was part of the parent's AfterTargets list.
            
        
        
            
            Arguments for target finished events
            
        
        
            
            Default constructor 
            
        
        
            
            This constructor allows event data to be initialized.
            Sender is assumed to be "MSBuild".
            
            text message
            help keyword 
            target name
            project file
            file in which the target is defined
            true if target built successfully
        
        
            
            This constructor allows event data to be initialized.
            Sender is assumed to be "MSBuild".
            
            text message
            help keyword 
            target name
            project file
            file in which the target is defined
            true if target built successfully
            Target output items for the target. If batching will be null for everything except for the last target in the batch
        
        
            
            This constructor allows event data to be initialized including the timestamp when the event was created.
            Sender is assumed to be "MSBuild".
            
            text message
            help keyword 
            target name
            project file
            file in which the target is defined
            true if target built successfully
            Timestamp when the event was created
            An  containing the outputs of the target.
        
        
            
            Serializes to a stream through a binary writer
            
            Binary writer which is attached to the stream the event will be serialized into
        
        
            
            Deserializes from a stream through a binary reader
            
            Binary reader which is attached to the stream the event will be deserialized from
            The version of the runtime the message packet was created from
        
        
            
            Target name
            
        
        
            
            True if target built successfully, false otherwise
            
        
        
            
            Project file associated with event.
            
        
        
            
            File where this target was declared.
            
        
        
            
            Target outputs
            
        
        
            
            Arguments for the target skipped event.
            
        
        
            
            Initializes a new instance of the TargetSkippedEventArgs class.
            
        
        
            
            Initializes a new instance of the TargetSkippedEventArgs class.
            
        
        
            
            Gets or sets the name of the target being skipped.
            
        
        
            
            Gets or sets the parent target of the target being skipped.
            
        
        
            
            File where this target was declared.
            
        
        
            
            Why the parent target built this target.
            
        
        
            
            Arguments for target started events
            
        
        
            
            Default constructor
            
        
        
            
            This constructor allows event data to be initialized.
            Sender is assumed to be "MSBuild".
            
            text message
            help keyword 
            target name
            project file
            file in which the target is defined
        
        
            
            This constructor allows event data to be initialized including the timestamp when the event was created.
            
            text message
            help keyword 
            target name
            project file
            file in which the target is defined
            The part of the target.
            Timestamp when the event was created
        
        
            
            This constructor allows event data to be initialized.
            
            text message
            help keyword 
            target name
            project file
            file in which the target is defined
            The part of the target.
            The reason the parent built this target.
            Timestamp when the event was created
        
        
            
            Serializes to a stream through a binary writer
            
            Binary writer which is attached to the stream the event will be serialized into
        
        
            
            Deserializes from a stream through a binary reader
            
            Binary reader which is attached to the stream the event will be deserialized from
            The version of the runtime the message packet was created from
        
        
            
            target name
            
        
        
            
            Target which caused this target to build
            
        
        
            
            Project file associated with event.   
            
        
        
            
            File where this target was declared.
            
        
        
            
            Why this target was built by its parent.
            
        
        
            
            This class is used by tasks to log their command lines. This class extends
             so that command lines can be logged as
            messages. Logging a command line is only relevant for tasks that wrap an
            underlying executable/tool, or emulate a shell command. Tasks that have
            no command line equivalent should not raise this extended message event.
            
            
            WARNING: marking a type [Serializable] without implementing ISerializable
            imposes a serialization contract -- it is a promise to never change the
            type's fields i.e. the type is immutable; adding new fields in the next
            version of the type without following certain special FX guidelines, can
            break both forward and backward compatibility
            
        
        
            
            Default (family) constructor.
            
        
        
            
            Creates an instance of this class for the given task command line.
            
            The command line used by a task to launch
            its underlying tool/executable.
            The name of the task raising this event.
            Importance of command line -- controls whether
            the command line will be displayed by less verbose loggers.
        
        
            
            Creates an instance of this class for the given task command line. This constructor allows the timestamp to be set
            
            The command line used by a task to launch
            its underlying tool/executable.
            The name of the task raising this event.
            Importance of command line -- controls whether
            the command line will be displayed by less verbose loggers.
            Timestamp when the event was created
        
        
            
            Gets the task command line associated with this event.
            
        
        
            
            Gets the name of the task that raised this event.
            
        
        
            
            Arguments for task finished events
            
        
        
            
            Default constructor
            
        
        
            
            This constructor allows event data to be initialized.
            Sender is assumed to be "MSBuild".
            
            text message
            help keyword 
            project file
            file in which the task is defined
            task name 
            true indicates task succeed
        
        
            
            This constructor allows event data to be initialized and the timestamp to be set
            Sender is assumed to be "MSBuild".
            
            text message
            help keyword 
            project file
            file in which the task is defined
            task name 
            true indicates task succeed
            Timestamp when event was created
        
        
            
            Serializes to a stream through a binary writer
            
            Binary writer which is attached to the stream the event will be serialized into
        
        
            
            Deserializes the Errorevent from a stream through a binary reader
            
            Binary reader which is attached to the stream the event will be deserialized from
            The version of the runtime the message packet was created from
        
        
            
            Task Name
            
        
        
            
            True if target built successfully, false otherwise
            
        
        
            
            Project file associated with event.   
            
        
        
            
            MSBuild file where this task was defined.   
            
        
        
            
            Lightweight specialized implementation of  only used for deserializing items.
            The goal is to minimize overhead when representing deserialized items.
            Used by node packet translator and binary logger.
            
        
        
            
            Clone the task item and all metadata to create a snapshot
            
            An  to clone
        
        
            
            This class is used by tasks to log their parameters (input, output).
            The intrinsic ItemGroupIntrinsicTask to add or remove items also
            uses this class.
            
        
        
            
            Creates an instance of this class for the given task parameter.
            
        
        
            
            The  type is declared in Microsoft.Build.Framework.dll
            which is a declarations assembly. The logic to realize the Message is in Microsoft.Build.dll
            which is an implementations assembly. This seems like the easiest way to inject the
            implementation for realizing the Message.
            
            
            Note that the current implementation never runs and is provided merely
            as a safeguard in case MessageGetter isn't set for some reason.
            
        
        
            
            Provides a way for Microsoft.Build.dll to provide a more efficient dictionary factory
            (using ArrayDictionary`2). Since that is an implementation detail, it is not included
            in Microsoft.Build.Framework.dll so we need this extensibility point here.
            
        
        
            
            Class which represents the parameter information from the using task as a strongly typed class.
            
        
        
            
            Encapsulates a list of parameters declared in the UsingTask
            
            Name of the parameter
            The actual type of the parameter
            True if the parameter is both an output and input parameter. False if the parameter is only an input parameter
            True if the parameter must be supplied to each invocation of the task.
        
        
            
            The type of the property
            
        
        
            
            Name of the property
            
        
        
            
            This task parameter is an output parameter (analogous to [Output] attribute)
            
        
        
            
            This task parameter is required (analogous to the [Required] attribute)
            
        
        
            
            This task parameter should be logged when LogTaskInputs is set. Defaults to true.
            
        
        
            
            When this task parameter is an item list, determines whether to log item metadata. Defaults to true.
            
        
        
            
            Whether the Log and LogItemMetadata properties have been assigned already.
            
        
        
            
            Arguments for task started events
            
        
        
            
            Default constructor
            
        
        
            
            This constructor allows event data to be initialized.
            Sender is assumed to be "MSBuild".
            
            text message
            help keyword 
            project file
            file in which the task is defined
            task name
        
        
            
            This constructor allows event data to be initialized.
            Sender is assumed to be "MSBuild".
            
            text message
            help keyword 
            project file
            file in which the task is defined
            task name
            Timestamp when event was created
        
        
            
            Serializes to a stream through a binary writer
            
            Binary writer which is attached to the stream the event will be serialized into
        
        
            
            Deserializes the Errorevent from a stream through a binary reader
            
            Binary reader which is attached to the stream the event will be deserialized from
            The version of the runtime the message packet was created from
        
        
            
            Task name.
            
        
        
            
            Project file associated with event.   
            
        
        
            
            MSBuild file where this task was defined.   
            
        
        
            
            Arguments for telemetry events.
            
        
        
            
            Gets or sets the name of the event.
            
        
        
            
            Gets or sets a list of properties associated with the event.
            
        
        
            
            The arguments for an uninitialized property read event.
            
        
        
            
            UninitializedPropertyReadEventArgs
            
        
        
            
            Creates an instance of the UninitializedPropertyReadEventArgs class
            
            The name of the uninitialized property that was read.
            The message of the uninitialized property that was read.
            The helpKeyword of the uninitialized property that was read.
            The sender name of the event.
            The message importance of the event.
        
        
            
            The name of the uninitialized property that was read.
            
        
        
            
            Represents an argument to a . 
            
             
            Functionally, it is simply a reference to another . Those who manually 
            instantiate this class should remember to call  before setting the first
            property and  after setting the last property of the object.
            
        
        
            
            Default constructor needed for XAML deserialization.
            
        
        
            
            Name of the  this argument refers to. 
            
            
            Its value must point to a valid . This field is mandatory and culture invariant.
            
        
        
            
            Tells if the  pointed to by  must be defined for the definition
            of the  owning this argument to make sense.
            
             
            This field is optional and is set to false by default.
            
        
        
            
            The string used to separate this argument value from the parent  switch in the command line.
            
            
            This field is optional and culture invariant.
            
        
        
            
            See ISupportInitialize.
            
        
        
            
            See ISupportInitialize.
            
        
        
            
            Represents a  property. 
            
             
            This represents schema information (name, allowed values, etc) of a  property.
            Since this is just schema information, there is no field like "Value" used to get/set the value of this
            property.
             Those who manually instantiate this class should remember to call  before
            setting the first property and  after setting the last property of the object.
            
            
            This partial class contains all properties which are public and hence settable in XAML. Those properties that
            are internal are defined in another partial class below.
            
            
            Represents a  property. 
            
             
            This represents schema information (name, allowed values, etc) of a  property.
            Since this is just schema information, there is no field like "Value" used to get/set the value of this
            property.
             Those who manually instantiate this class should remember to call  before
            setting the first property and  after setting the last property of the object.
            
            
            This partial class contains members that are auto-generated, internal, etc. Whereas the
            other partial class contains public properties that can be set in XAML.
            
        
        
            
            See DisplayName property.
            
        
        
            
            Default constructor. Needed for deserializtion from a persisted format.
            
        
        
            
            The name of this . 
            
            
            This field is mandatory and culture invariant. The value of this field cannot be set to the empty string. 
            
        
        
            
            The name that could be used by a prospective UI client to display this . 
            
            
            This field is optional and is culture sensitive. When this property is not set, it is assigned the same 
            value as the  property (and hence, would not be localized).
            
        
        
            
            Description of this  for use by a prospective UI client. 
            
             
            This field is optional and is culture sensitive.
            
        
        
            
            The keyword that is used to open the help page for this property.
            
            
            This form of specifying help takes precedence over 
            and  + .
            This field is optional and is culture insensitive.
            
        
        
            
            The URL of the help page for this property that will be opened when the user hits F1.
            
            
            This property is higher in priority that  +  
            (i.e., these two properties are ignored if 
            is specified), but lower in priority than .
            This field is optional and is culture insensitive.
            
             ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.en/dv_vstoc/html/06ddebea-2c83-4a45-bb48-6264c797ed93.htm 
        
        
            
            The help file to use when the user hits F1. Must specify  along with this.
            
             
            This property goes along with . . This
            form of specifying the help page for a property takes lower precedence than both 
            and .
            This field is optional and is culture insensitive.
            
        
        
            
            The help context to use when the user hits F1. Must specify  along with this.
            
            
            This property uses the  property to display the help context of the specified 
            help file. This field is optional. This
            form of specifying the help page for a property takes lower precedence than both 
            and .
            
        
        
            
            The name of the category to which this property belongs to. 
            
            
            
            If the value of this field  does not correspond to the Name 
            property of a  element defined in
            the containing , a default  with this name
            is auto-generated and added to the containing  class. 
            
            
            This field is optional and is culture invariant. 
            
            
            When this field is not specified, this property is added to a
            auto-generated category called General (localized). This field cannot be set to the
            empty string.
            
            
        
        
            
            The sub category to which this property belongs to.
            
        
        
            
            Tells if this property is a read-only property. 
            
            
            This field is optional and its default value is "false".
            
        
        
            
            A value indicating whether this property allows multiple values to be supplied/selected simultaneously.
            
        
        
            
            The switch representation of this property for the case when this property represents a tool parameter.
            
            
            This field is optional and culture invariant.
            
            
            For the VC++ CL task, WholeProgramOptimization is a boolean parameter. It's switch is GL.
            
        
        
            
            The prefix for the switch representation of this property for the case when this property represents a tool parameter.
            
            
            The value specified here overrides the value specified for the parent 's .
            This field is optional and culture invariant.
            
            
            For the VC++ CL task, WholeProgramOptimization is a boolean parameter. It's switch is GL and its
            switch prefix (inherited from the parent  since it is not overridden by WholeProgramOptimization)
            is /. Thus the complete switch in the command line for this property would be /GL
            
        
        
            
            The token used to separate a switch from its value.
            
            
            The value specified here overrides the value specified for the parent 's .
            This field is optional and culture invariant.
            
            
            Example: Consider /D:WIN32. In this switch and value representation, ":" is the separator since its separates the switch D 
            from its value WIN32.
            
        
        
            
            A hint to the UI client telling it whether to display this property or not.
            
            
            This field is optional and has the default value of "true".
            
        
        
            
            A hint to the command line constructor whether to include this property in the command line or not.
            
            
            Some properties are used only by the targets and don't want to be included in the command line.
            Others (like task parameters) are included in the command line in the form of the switch/value they emit.
            This field is optional and has the default value of true.
            
        
        
            
            Indicates whether this property is required to have a value set.
            
        
        
            
            Specifies the default value for this property. 
            
            
            This field is optional and whether, for a ,
            it is culture sensitive or not depends on the semantics of it.
            
        
        
            
            The data source where the current value of this property is stored. 
            
            
            If defined, it overrides the 
             property on the containing . This field is mandatory only if the parent
             does not have the data source initialized. The getter for this property returns
            only the  set directly on this  instance.
            
        
        
            
            Additional attributes of this . 
            
            
            This can be used as a grab bag of additional metadata of this property that are not
            captured by the primary fields. You will need a custom UI to interpret the additional
            metadata since the shipped UI formats can't obviously know about it.
            This field is optional.
            
        
        
            
            List of arguments for this property.
            
            
             This field is optional.
            
        
        
            
            List of value editors for this property. 
            
            
            This field is optional.
            
        
        
            
            The  containing this .
            
        
        
            
            See ISupportInitialize.
            
        
        
            
            See ISupportInitialize.
            
        
        
            
            Represents the schame of a boolean property.
            
        
        
            
            Represents the logical negation of a boolean switch. 
            
             
            
            For the VC++ CL task, WholeProgramOptimization is a boolean parameter. It's switch is GL. To
            disable whole program optimization, you need to pass the ReverseSwitch, which is GL-.
            
            
            This field is optional.
            
            
        
        
            
            Represents a category to which a  can belong to.
            
             
            Those who manually 
            instantiate this class should remember to call  before setting the first
            property and  after setting the last property of the object.
            
            
            This partial class contains all properties which are public and hence settable in XAML. Those properties that
            are internal are defined in another partial class below.
            
            
            Represents a category to which a  can belong to.
            
             
            Those who manually 
            instantiate this class should remember to call  before setting the first
            property and  after setting the last property of the object.
            
            
            This partial class contains members that are auto-generated, internal, etc. Whereas the
            other partial class contains public properties that can be set in XAML.
            
        
        
            
            See DisplayName property.
            
        
        
            
            The name of this . 
            
            
            This field is mandatory and culture invariant.
            This field cannot be set to the empty string.
            
        
        
            
            The name that could be used by a prospective UI client to display this . 
            
            
            This field is optional and is culture sensitive. When this property is not set, it is assigned the same 
            value as the  property (and hence, would not be localized).
            
        
        
            
            Description of this . 
            
            
            This field is optional and is culture sensitive.
            
        
        
            
            Subtype of this . Is either Grid (default) or CommandLine.
            
            
            It helps the UI display this category in an appropriate form. E.g. non command line category
            properties are normally displayed in the form of a property grid.
            
        
        
            
            Help information for this . 
            
            
            Maybe used to specify a help URL. This field
            is optional and is culture sensitive.
            
        
        
            
            Default constructor. Called during deserialization.
            
        
        
            
            See ISupportInitialize.
            
        
        
            
            See ISupportInitialize.
            
        
        
            
            The CategorySchema provides a strongly typed identity handle to the underlying schema data model.
            
        
        
            
            Used to deserialize the content type information 
            
        
        
            
            metadata hash
            
        
        
            
            Constructor
            
        
        
            
            serializes IContentType.Name
            
        
        
            
            serializes IContentType.DisplayName
            
        
        
            
            serializes IContentType.ItemType
            
        
        
            
            serializes IContentType.DefaultContentTypeForItemType
            
        
        
            
            This property was never used for anything.  It should have been removed before we shipped MSBuild 4.0.
            
        
        
            
            serializes content type's metadata. Accessible via IContentType.GetMetadata()
            
        
        
            
            Access metadata in convenient way
            
        
        
            
            See ISupportInitialize.
            
        
        
            
            See ISupportInitialize.
            
        
        
            
            see IProjectSchemaNode
            
        
        
            
            see IProjectSchemaNode
            
        
        
            
            Lazily initializes the metadata dictionary.
            
            The new dictionary.
            
            This is a destructive operation.  It clears the NameValuePair list field.
            
        
        
            
            Indicates where the default value for some property may be found.
            
        
        
            
            The default value for a property is set at the top of the project file (usually via an import of a .props file).
            
        
        
            
            The default value for a property is set at the bottom of the project file (usually via an import of a .targets file,
            where the property definition is conditional on whether the property has not already been defined.)
            
        
        
            
            Represents the location and grouping for a .
            
            
            Those who manually
            instantiate this class should remember to call  before setting the first
            property and  after setting the last property of the object.
            
        
        
            
            Default constructor. Needed for proper XAML deserialization.
            
        
        
            
            The storage location for this data source.
            
            
            This field is mandatory unless  is set. In that case, the parent
             will be used with the specified style. Example values are ProjectFile and
            UserFile. ProjectFile causes the property value to be written to and read from the project
            manifest file or the property sheet (depending on which node in the solution explorer/property manager window
            is used to spawn the property pages UI). UserFile causes the property value to be written to and read
            from the .user file.
            
        
        
            
            The storage style for this data source.
            
            
            For example, with  of ProjectFile, this field can be Element (default) to
            save as a child XML Element, or Attribute to save properties as an XML attribute.
            
        
        
            
            Gets or sets the actual MSBuild property name used to read/write the value of this property.
            Applicable only to  objects attached to properties.
            
            The MSBuild property name to use; or null to use the  as the MSBuild property name.
            
            The persisted name will usually be the same as the property name as it appears in the 
            and the value of this property can therefore be left at is default of null.
            Since property names must be unique but need not be unique in the persisted store (due to other differences
            in the data source such as item type) there may be times when Rule property names must be changed to be
            unique in the XAML file, but without changing how the property is persisted in the MSBuild file.
            It is in those cases where this property becomes useful.
            It may also be useful in specialized build environments where property names must differ from the
            normally used name in order to maintain compatibility with the project system.
            
        
        
            
            The label of the MSBuild property group/item definition group to which
            a property/item definition metadata belongs to. Default value is the
            empty string.
            
             A VC++ property that exists in the project manifest
            in the MSBuild property group with label Globals would have this
            same value for this field. 
        
        
            
            If a  is an item definition metadata or item metadata, this field
            specified the item type of the item definition or the item, respectively. For common properties
            this field must not be set.
            
        
        
            
            Indicates if a property is configuration-dependent as indicated by the presence of a configuration
            condition attached to the property definition at its persistence location.
            
            
            This field is optional and has the default value of true.
            
        
        
            
            The data type of the source.  Generally one of Item, ItemDefinition, Property,
            or TargetResults (when  is non-empty).
            Among other things this governs how the data is treated during build.
            
            
            A value of Item for this property indicates that this property is actually
            an item array - the list of all items with the item type specified by .
            
        
        
            
            Gets or sets the semicolon-delimited list of MSBuild targets that must be executed before reading
            the read-only properties or items described by this .
            
        
        
            
            Gets or sets a value indicating where the default value for this property can be found.
            
        
        
            
            See ISupportInitialize.
            
        
        
            
            See ISupportInitialize.
            
        
        
            
            Represents the schema of an enumeration property.
            
             This class inherits the  property from the  class.
            That property does not make sense for this property. Use the  property on the
             instead to mark the default value for this property. 
        
        
            
            constructor
            
        
        
            
            The provider that produces the list of possible values for this property. Must be set.
            
        
        
            
            A provider-specific set of options to pass to the provider.
            
        
        
            
            Represents the schema of an enumeration property.
            
             This class inherits the  property from the  class.
            That property does not make sense for this property. Use the  property on the
             instead to mark the default value for this property. 
        
        
            
            constructor
            
        
        
            
            The list of possible values for this property. Must have at least one value.
            
        
        
            
            See ISupportInitialize.
            
        
        
            
            Represents an admissible value of an .
            
        
        
            
            See DisplayName property.
            
        
        
            
            Default constructor needed for XAML deserialization.
            
        
        
            
            The name of this . 
            
            
            This field is mandatory and culture invariant.
            
        
        
            
            The name that could be used by a prospective UI client to display this . 
            
            
            This field is optional and is culture sensitive. When this property is not set, it is assigned the same 
            value as the  property (and hence, would not be localized).
            
        
        
            
            Description of this  for use by a prospective UI client. 
            
             
            This field is optional and is culture sensitive.
            
        
        
            
            Help information for this . 
            
            
            Maybe used to specify a help URL. This field
            is optional and is culture sensitive.
            
        
        
            
            The switch representation of this property for the case when the parent  represents a tool parameter.
            
            
            This field is optional and culture invariant.
            
             The VC compiler has an  named Optimizationused to specify the desired optimization type. All the
            admissible values for this property have switches, e.g. Disabled (switch = Od), "MinimumSize" (switch = O1), 
            etc. 
        
        
            
            The prefix for the switch representation of this value for the case when the parent  represents a tool parameter.
            
            
            This field is optional and culture invariant.
            
        
        
            
            Tells if this  is the default value for the associated
            . 
            
            
            This field is optional and the default value for this
            field is "false".
            
        
        
            
            Additional attributes of this . 
            
            
            This can be used as a grab bag of additional metadata of this value that are not
            captured by the primary fields. You will need a custom UI to interpret the additional
            metadata since the shipped UI formats can't obviously know about it.
            This field is optional.
            
        
        
            
            List of arguments for this . 
            
            
            This field is optional.
            
        
        
            
            simple class that deserialize extension to content type data
            
        
        
            
            Constructor
            
        
        
            
            file extension 
            
        
        
            
            corresponding content type
            
        
        
            
            see IProjectSchemaNode
            
        
        
            
            see IProjectSchemaNode
            
        
        
            
            Represent the schema of an integer property.
            
        
        
            
            Minimum allowed value for this property. 
            
            
            This field is optional. 
            It returns null when this property is not set. The value of this
            property must be less than or equal to the 
            property (assuming that the latter is defined).
            
        
        
            
            Maximum allowed value for this property. 
            
            
            This field is optional. 
            It returns null when this property is not set. The value of this
            property must be greater than or equal to the 
            property (assuming that the latter is defined).
            
        
        
            
            See ISupportInitialize.
            
        
        
            
            Interface that we expect all root classes from project schema XAML files to implement
            
        
        
            
            Return all types of static data for data driven features this node contains
            
        
        
            
            Returns all instances of static data with Type "type".  Null or Empty list if there is no objects from asked type provided by this node
            
        
        
            
            Used to deserialize the item type information 
            
        
        
            
            Constructor
            
        
        
            
            serializes IItemType.Name
            
        
        
            
            serializes IItemType.DisplayName
            
        
        
            
            serializes IItemType.ItemType
            
        
        
            
            serializes IItemType.UpToDateCheckInput
            
        
        
            
            See ISupportInitialize.
            
        
        
            
            See ISupportInitialize.
            
        
        
            
            see IProjectSchemaNode
            
        
        
            
            see IProjectSchemaNode
            
        
        
            
            Represents a name-value pair. The name cannot be null or empty.
            
        
        
            
            Default constructor needed for 
            
        
        
            
            The name.
            
        
        
            
            The value.
            
        
        
            
            Serialization class for node for the Data driven project schema XAML
            
        
        
            
            Constructor
            
        
        
            
            Collection of any schema node
            
        
        
            
            see IProjectSchemaNode
            
        
        
            
            see IProjectSchemaNode
            
        
        
            
            Methods for overriding one rule with another.
            
        
        
            
            A subsequent definition for a rule (with the same name) entirely overrides a previous definition.
            
        
        
            
            A subsequent definition for a rule (with the same name) adds properties to a previous definition.
            
        
        
            
            Used to represent the schema information for a Tool, a Custom Build Rule, a PropertyPage, etc. 
             
             
            
            Normally represented on disk as XAML, only one instance of this class is maintained per XAML
            file per project engine (solution).
            
             Those who manually instantiate this class should remember to call  before
            setting the first property and  after setting the last property of the object.
            
            
            
            This partial class contains all properties which are public and hence settable in XAML. Those properties that
            are internal are defined in another partial class below.
            
            
            Used to represent the schema information for a Tool, a Custom Build Rule, a PropertyPage, etc. 
             
             
            
            Normally represented on disk as XAML, only one instance of this class is maintained per XAML
            file per project engine (solution).
            
             Those who manually instantiate this class should remember to call  before
            setting the first property and  after setting the last property of the object.
            
            
            
            This partial class contains members that are auto-generated, internal, etc. Whereas the
            other partial class contains public properties that can be set in XAML.
            
        
        
            
            See DisplayName property.
            
        
        
            
            Default constructor. Needed for deserialization from a persisted format.
            
        
        
            
            The name of this . 
            
            
            This field is mandatory and culture invariant. The value of this field cannot be set to the empty string. 
            
        
        
            
            The name that could be used by a prospective UI client to display this . 
            
            
            This field is optional and is culture sensitive. When this property is not set, it is assigned the same 
            value as the  property (and hence, would not be localized).
            
        
        
            
            The name of the tool executable when this rule represents a tool.
            
        
        
            
            Description of this  for use by a prospective UI client. 
            
             
            This field is optional and is culture sensitive.
            
        
        
            
            Help information for this . 
            
            
            Maybe used to specify a help URL. This field
            is optional and is culture sensitive.
            
        
        
            
            The prefix to use for all property switches in this  for the case when this property  represent a tool.
            
            
            The value specified can be overridden by the value specified by a child 's .
            This field is optional and culture invariant.
            
            
            For the VC++ CL task, WholeProgramOptimization is a boolean parameter. It's switch is GL and its
            switch prefix (inherited from the parent  since it is not overridden by WholeProgramOptimization)
            is /. Thus the complete switch in the command line for this property would be /GL
            
        
        
            
            The token used to separate a property switch from its value.
            
            
            The value specified here is overridden by the value specified by the child 's .
            This field is optional and culture invariant.
            
            
            Example: Consider /D:WIN32. In this switch and value representation, ":" is the separator since its separates the switch D 
            from its value WIN32.
            
        
        
            
            The UI renderer template used to display this Rule. 
            
            
            The value used to set
            this field can be anything as long as it is recognized by the intended renderer.
            This field is required only if this Rule is meant to be displayed as a property page.
            
        
        
            
            The  for all the properties in this . This is overriden by any
            data source defined locally for a property. 
            
            
            This field need not be specified only if all individual properties have data source defined locally.
            
        
        
            
            This is a suggestion to a prospective UI client on the relative location of this  compared to all other Rules in the system.
            
        
        
            
            This is used to specify whether multiple files need to be batched on one command line invocation. 
            
            
            This field is optional.
            
        
        
            
            Indicates whether to hide the command line category or not. Default value is true.
            
            
            This field is optional.
            
        
        
            
            When this  represents a Build Customization, this field represents the file extension to associate.
            
            
            This field is optional.
            
        
        
            
            When this  represents a Build Customization, this field represents the message to be displayed before executing a Build Customization during the build.
            
            
            This field is optional.
            
        
        
            
            When this  represents a Build Customization, this field represents the command line template that is going to be used by a Build Customization task to invoke the tool.
            
            
            This field is optional.
            
        
        
            
            When this  represents a Build Customization, this field defines the semicolon separated list of additional inputs that are going to be evaluated
            for the Build Customization target.
            
            
            This field is optional.
            
        
        
            
            When this  represents a Build Customization, this field defines the semicolon separated list of outputs that are going to be evaluated
            for the Build Customization target.
            
            
            This field is optional.
            
        
        
            
            Gets or sets the method to use when multiple rules with the same name appear in the project
            to reconcile the rules into one instance.
            
        
        
            
            This list of properties in this . Atleast one property should be specified.
            
             The list returned by this property should not be modified. 
        
        
            
            The list of s that properties in this  belong to. 
            
            
            This field is optional. Note that this field returns only the categories that were explicitly defined and do
            not contain any auto-generated categories. When a  contained in this 
            declares its category to be something that is not present in this list, then we auto-generate a 
            with that name and add it to the internal list of categories. That auto-generated category will not be returned
            by this field.
            
        
        
            
            Gets or sets arbitrary metadata that may be set on a rule.
            
        
        
            
            Gets or sets a value indicating if property pages for this rule should be hidden or not.
            
        
        
            
            Thread synchronization.
            
        
        
            
            See the  property.
            
        
        
            
            Ordered dictionary of category names and the properties contained in them.
            The order of the categories is exactly the same as that specified in the XAML file.
            
        
        
            
            A lookup cache of property names to properties.
            
        
        
            
            This property returns the union of XAML specified s and auto-generated 
            s. The latter are created from the missing categories that are being referred to by the 
            properties in this Rule. The auto-generated s only have their name set.
            
        
        
            
            Returns all properties partitioned into categories. The return value is never
            null. 
            The returned list may contain auto-generated categories. Note that if a 
            (or its derived classes) refer to a property that is not specified, then an new
            Category is generated for the same. If not category is specified for the property, then
            the property is placed in the "General" category.
            The list of categories is exactly as specified in the Xaml file. The auto-generated
            categories come (in no strict order) after the specified categories.
            
             A dictionary whose keys are the  names and 
            the value is the list of properties in that category. 
        
        
            
            Returns the list of properties in a . Returns null if this 
            doesn't contain this category.
            
        
        
            
            Returns a property with a given name.
            
            The property, or null if one with a matching name could not be found.
        
        
            
            See ISupportInitialize.
            
        
        
            
            See ISupportInitialize.
            
        
        
            
            see IProjectSchemaNode
            
        
        
            
            see IProjectSchemaNode
            
        
        
            
            Initializes this class after Xaml loading is done.
            
        
        
            
            Creates a map containing all the evaluated category names and the list of
            properties belonging to that category.
            
        
        
            
            This is a simple container for  instances. 
            
            
            Note that we only deal in terms of s
            as far as property pages are concerned. The  is only used as a 
            container for more than one . The containing s are 
            immediately stripped off after loading of the xaml file.
            
        
        
            
            Default constructor needed for XAML deserialization.
            
        
        
            
            The collection of  instances this  instance contains.
            Must have at least one .
            
        
        
            
            See ISupportInitialize Members.
            
        
        
            
            See ISupportInitialize Members.
            
        
        
            
            see IProjectSchemaNode
            
        
        
            
            see IProjectSchemaNode
            
        
        
            
            The RuleSchema provides a strongly typed identity handle to the underlying schema data model.
            
        
        
            
            Represents the schema of a list-of-strings property. 
            
            
            Note, this represents
            a list of strings, not a list of s.
            
        
        
            
            Default constructor. Needed for property XAML deserialization.
            
        
        
            
            The separator to use in delineating individual values of this string list property
            
            
            For Val1;Val2;Val3, if CommandLineValueSeparator is specified as, say ,,
            the command line looks like this: /p:val1,val2,val3
            If not specified, the command line looks like this: /p:val1 /p:val2 /p:val3
            This field is optional.
            
        
        
            
            Please don't use. This is planned to be deprecated.
            
        
        
            
            Qualifies this string property to give it a more specific classification.
            
            
            Similar to the  property. 
            
        
        
            
            Represents the schema of a string property.
            
        
        
            
            Qualifies this string property to give it a more specific classification.
            
            
            The value this field is set to, must be understood by the consumer of this field
            (normally a UI renderer).
            
             The value of this property can be set to, say, "File", "Folder", "CarModel" etc. to specify
            if this is a file path, folder path, car model name etc. 
        
        
            
            Represents a value editor 
            
        
        
            
            See DisplayName property.
            
        
        
            
            Default constructor needed for XAML deserialization.
            
        
        
            
            The name of this . This field is mandatory and culture invariant.
            
        
        
            
            The UI display name for the editor
            
        
        
            
            Additional attributes of the editor that are not generic enough to be made
            properties on this class. This field is optional.
            
        
        
            
            See ISupportInitialize.
            
        
        
            
            See ISupportInitialize.
            
        
        
            
            Coupled together with the MSBUILDDISABLEFEATURESFROMVERSION environment variable,
            this class acts as a way to make risky changes while giving customers an opt-out.
            
            See docs here: https://github.com/dotnet/msbuild/blob/master/documentation/wiki/ChangeWaves.md
            For dev docs: https://github.com/dotnet/msbuild/blob/master/documentation/wiki/ChangeWaves-Dev.md
        
        
            
            Special value indicating that all features behind all Change Waves should be enabled.
            
        
        
            
            The lowest wave in the current rotation of Change Waves.
            
        
        
            
            The highest wave in the current rotation of Change Waves.
            
        
        
            
            Checks the conditions for whether or not we want ApplyChangeWave to be called again.
            
        
        
            
            The current disabled wave.
            
        
        
            
            The status of how the disabled wave was set.
            
        
        
            
            Read from environment variable `MSBuildDisableFeaturesFromVersion`, correct it if required, cache it and its ConversionState.
            
        
        
            
            Determines whether features behind the given wave are enabled.
            
            The version to compare.
            A bool indicating whether the change wave is enabled.
        
        
            
            Resets the state and value of the currently disabled version.
            Used for testing only.
            
        
        
            
            Constants that we want to be shareable across all our assemblies.
            
        
        
            
            The name of the property that indicates the tools path
            
        
        
            
            Name of the property that indicates the X64 tools path
            
        
        
            
            Name of the property that indicates the root of the SDKs folder
            
        
        
            
            Name of the property that indicates that all warnings should be treated as errors.
            
        
        
            
            Name of the property that indicates a list of warnings to treat as errors.
            
        
        
            
            Name of the property that indicates the list of warnings to treat as messages.
            
        
        
            
            The name of the environment variable that users can specify to override where NuGet assemblies are loaded from in the NuGetSdkResolver.
            
        
        
            
            The name of the target to run when a user specifies the /restore command-line argument.
            
        
        
            
            The most current Visual Studio Version known to this version of MSBuild.
            
        
        
            
            The most current ToolsVersion known to this version of MSBuild.
            
        
        
            
            The most current VSGeneralAssemblyVersion known to this version of MSBuild.
            
        
        
            
            Current version of this MSBuild Engine assembly in the form, e.g, "12.0"
            
        
        
            
            Symbol used in ProjectReferenceTarget items to represent default targets
            
        
        
            
            Symbol used in ProjectReferenceTarget items to represent targets specified on the ProjectReference item
            with fallback to default targets if the ProjectReference item has no targets specified.
            
        
        
            
            Specifies whether the current evaluation / build is happening during a graph build
            
        
        
            
            References to other msbuild projects
            
        
        
            
            Statically specifies what targets a project calls on its references
            
        
        
            
            Declares a project cache plugin and its configuration.
            
        
        
            
            Embed specified files in the binary log
            
        
        
            
            Constants naming well-known item metadata.
            
        
        
            
            The output path for a given item.
            
        
        
            
            This captures information of how various key methods of building with MSBuild ran.
            
        
        
            
            define the singleton instance of the event source
            
        
        
            
            Call this method to notify listeners of information relevant to collecting a set of items, mutating them in a specified way, and saving the results.
            
            The type of the item being mutated.
        
        
            The type of the item being mutated.
        
        
            
            Call this method to notify listeners of information relevant to the setup for a BuildManager to receive build requests.
            
        
        
            
            Call this method to notify listeners of information of how a project file built.
            Filename of the project being built.
            
        
        
            Filename of the project being built.
            Names of the targets that built.
        
        
            The condition being evaluated.
        
        
            The condition being evaluated.
            The result of evaluating the condition.
        
        
            
            Call this method to notify listeners of how the project data was evaluated.
            
            Relevant information about where in the run of the progam it is.
        
        
            Relevant information about where in the run of the progam it is.
        
        
            Relevant information about where in the run of the progam it is.
        
        
            Relevant information about where in the run of the progam it is.
        
        
            Relevant information about where in the run of the progam it is.
            Number of Properties getting evaluated.
            Number of Imports getting evaluated.
        
        
            Relevant information about where in the run of the progam it is.
        
        
            Relevant information about where in the run of the progam it is.
            Number of ItemDefinitionGroupElements getting evaluated.
        
        
            Relevant information about where in the run of the progam it is.
        
        
            Relevant information about where in the run of the progam it is.
            Number of project items evaluated.
        
        
            Relevant information about where in the run of the progam it is.
        
        
            Relevant information about where in the run of the progam it is.
            Number of using tasks elements evaluated.
        
        
            Relevant information about where in the run of the progam it is.
        
        
            Relevant information about where in the run of the progam it is.
            Number of targets read.
        
        
            Relevant information about where in the run of the progam it is.
        
        
            
            Call this method to notify listeners of information relevant to identifying a list of files that correspond to an item with a wildcard.
            
            Source of files to glob.
            Pattern, possibly with wildcard(s) to be expanded.
            Patterns not to expand.
        
        
            Source of files to glob.
            Pattern, possibly with wildcard(s) to be expanded.
            Patterns not to expand.
        
        
            
            Call this method to notify listeners of timing related to loading an XmlDocumentWithLocation from a path.
            Path to the document to load.
            
        
        
            Path to the document to load.
        
        
            
            Call this method to notify listeners of profiling for the function that parses an XML document into a ProjectRootElement.
            
            Relevant information about where in the run of the progam it is.
        
        
            Relevant information about where in the run of the progam it is.
        
        
            
            Call this method to notify listeners of profiling for the method that removes blacklisted references from the reference table. It puts primary and dependency references in invalid file lists.
            
        
        
            Project file's location.
        
        
            Project file's location.
        
        
            The name of the target being executed.
        
        
            The name of the target being executed.
        
        
            
            Call this method to notify listeners of the start of a build as called from the command line.
            
            The command line used to run MSBuild.
        
        
            The command line used to run MSBuild.