Engine Class

Definition

Caution

This class has been deprecated. Please use Microsoft.Build.Evaluation.ProjectCollection from the Microsoft.Build assembly instead.

Represents the MSBuild engine.

public ref class Engine
public class Engine
[System.Obsolete("This class has been deprecated. Please use Microsoft.Build.Evaluation.ProjectCollection from the Microsoft.Build assembly instead.")]
public class Engine
type Engine = class
[<System.Obsolete("This class has been deprecated. Please use Microsoft.Build.Evaluation.ProjectCollection from the Microsoft.Build assembly instead.")>]
type Engine = class
Public Class Engine
Inheritance
Engine
Attributes

Examples

The following example creates an Engine object and uses the BuildProjectFile method to build a project file. The FileLogger class is used to log information to a file.

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Build.BuildEngine;

namespace BuildAProjectCS
{
    class Program
    {
        static void Main(string[] args)
        {
            // Instantiate a new Engine object
            Engine engine = new Engine();

            // Point to the path that contains the .NET Framework 2.0 CLR and tools
            engine.BinPath = @"c:\windows\microsoft.net\framework\v2.0.xxxxx";

            // Instantiate a new FileLogger to generate build log
            FileLogger logger = new FileLogger();

            // Set the logfile parameter to indicate the log destination
            logger.Parameters = @"logfile=C:\temp\build.log";

            // Register the logger with the engine
            engine.RegisterLogger(logger);

            // Build a project file
            bool success = engine.BuildProjectFile(@"c:\temp\validate.proj");

            //Unregister all loggers to close the log file
            engine.UnregisterAllLoggers();

            if (success)
                Console.WriteLine("Build succeeded.");
            else
                Console.WriteLine(@"Build failed. View C:\temp\build.log for details");
        }
    }
}
Module Module1
    'Add references to Microsoft.Build.Framework and
    'Microsoft.Build.BuildEngine
    Sub Main()
        'Create a new Engine object
        Dim engine As New Engine()

        'Point to the path that contains the .NET Framework 2.0 CLR and tools
        engine.BinPath = "c:\windows\microsoft.net\framework\v2.0.xxxxx"

        'Instantiate a new FileLogger to generate a build log
        Dim logger As New FileLogger()

        'Set logfile parameter to indicate the log destination
        logger.Parameters = "logfile=c:\temp\build.log"

        'Register the logger with the engine
        engine.RegisterLogger(logger)

        'Build the project file
        Dim success As Boolean = engine.BuildProjectFile("c:\temp\validate.proj")

        'Unregister all loggers to close the log file
        engine.UnregisterAllLoggers()

        If success Then
            Console.WriteLine("Build succeeded.")
        Else
            Console.WriteLine("Build failed. View C:\temp\build.log for details.")
        End If
    End Sub

End Module

Remarks

In a system of project-to-project dependencies, the Engine maintains the building projects, making it possible to avoid building the same target in the same project more than once in a given build.

Constructors

Engine()

Initializes a new instance of the Engine class.

Engine(BuildPropertyGroup)

Initializes a new instance of the Engine class.

Engine(BuildPropertyGroup, ToolsetDefinitionLocations)

Initializes a new instance of the Engine class.

Engine(BuildPropertyGroup, ToolsetDefinitionLocations, Int32, String)

Initializes a new instance of the Engine class.

Engine(String)
Obsolete.

Initializes a new instance of the Engine class that has the specified BinPath.

Engine(ToolsetDefinitionLocations)

Initializes a new instance of the Engine class.

Properties

BinPath
Obsolete.

Gets or sets the path to MSBuild.exe.

BuildEnabled

Gets or sets a value that indicates whether the building of targets in the project is enabled.

DefaultToolsVersion

The default ToolsVersion of this build engine.

GlobalEngine

Gets the Engine that is global (shared) for this AppDomain.

GlobalProperties

Gets or sets a collection of the global properties for the project.

IsBuilding

Gets whether a project is currently being built.

OnlyLogCriticalEvents

Gets or sets a value that indicates whether to only log critical events, such as warnings and errors, during the build.

Toolsets

Gets or sets the collection of Toolsets that are recognized by this build engine instance.

Version

Gets the version of the Engine.

Methods

BuildProject(Project)

Builds the specified Project.

BuildProject(Project, String)

Builds the specified target of the specified Project.

BuildProject(Project, String[])

Builds the specified targets of the specified Project.

BuildProject(Project, String[], IDictionary)

Builds the specified targets of the specified Project, and returns the outputs of the targets.

BuildProject(Project, String[], IDictionary, BuildSettings)

Builds the specified targets of the specified Project with the specified BuildSettings, and returns the outputs of the targets.

BuildProjectFile(String)

Loads the specified project file and builds the project.

BuildProjectFile(String, String)

Loads the specified project file and builds the specified target of the project.

BuildProjectFile(String, String[])

Loads the specified project file and builds the specified targets of the project.

BuildProjectFile(String, String[], BuildPropertyGroup)

Loads the specified project file and builds the specified targets of the project with the specified GlobalProperties, and returns the outputs of the targets.

BuildProjectFile(String, String[], BuildPropertyGroup, IDictionary)

Loads the specified project file and builds the specified targets of the project with the specified GlobalProperties, and returns the outputs of the targets.

BuildProjectFile(String, String[], BuildPropertyGroup, IDictionary, BuildSettings)

Loads the specified project file and builds the specified targets of the project with the specified BuildSettings and GlobalProperties, and returns the outputs of the targets.

BuildProjectFile(String, String[], BuildPropertyGroup, IDictionary, BuildSettings, String)

Loads a project file from disk and builds the given targets.

BuildProjectFiles(String[], String[][], BuildPropertyGroup[], IDictionary[], BuildSettings, String[])

Loads a set of project files from disk and then builds the given list of targets for each project.

CreateNewProject()

Creates an empty Project object that is associated with this Engine.

GetLoadedProject(String)

Returns the Project object that is associated with the specified project file.

RegisterDistributedLogger(ILogger, LoggerDescription)

Registers distributed loggers with the build engine.

RegisterLogger(ILogger)

Registers the specified logger with the Engine.

Shutdown()

Called when the host is finished with this build engine. It unregisters loggers and shuts down nodes.

UnloadAllProjects()

Removes all references to Project objects from the Engine.

UnloadProject(Project)

Removes the reference to the specified Project from the Engine.

UnregisterAllLoggers()

Unregisters all loggers from the Engine.

Applies to