| File: IBuildEngine.cs | Web Access |
| Project: src\msbuild\src\Framework\Microsoft.Build.Framework.csproj (Microsoft.Build.Framework) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Collections; #nullable disable namespace Microsoft.Build.Framework { /// <summary> /// This interface exposes functionality on the build engine /// that is required for task authoring. /// </summary> public interface IBuildEngine { /// <summary> /// 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. /// </summary> /// <param name="e">Details of event to raise.</param> void LogErrorEvent(BuildErrorEventArgs e); /// <summary> /// 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. /// </summary> /// <param name="e">Details of event to raise.</param> void LogWarningEvent(BuildWarningEventArgs e); /// <summary> /// 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. /// </summary> /// <param name="e">Details of event to raise.</param> void LogMessageEvent(BuildMessageEventArgs e); /// <summary> /// 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. /// </summary> /// <param name="e">Details of event to raise.</param> void LogCustomEvent(CustomBuildEventArgs e); /// <summary> /// Returns true if the ContinueOnError flag was set to true for this particular task /// in the project file. /// </summary> bool ContinueOnError { get; } /// <summary> /// Retrieves the line number of the task node within the project file that called it. /// </summary> int LineNumberOfTaskNode { get; } /// <summary> /// Retrieves the line number of the task node within the project file that called it. /// </summary> int ColumnNumberOfTaskNode { get; } /// <summary> /// Returns the full path to the project file that contained the call to this task. /// </summary> string ProjectFileOfTaskNode { get; } /// <summary> /// 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. /// </summary> /// <remarks> /// 1) it is acceptable to pass null for both <c>targetNames</c> and <c>targetOutputs</c> /// 2) if no targets are specified, the default targets are built /// 3) target outputs are returned as <c>ITaskItem</c> arrays indexed by target name /// </remarks> /// <param name="projectFileName">The project to build.</param> /// <param name="targetNames">The targets in the project to build (can be null).</param> /// <param name="globalProperties">A hash table of additional global properties to apply /// to the child project (can be null). The key and value should both be strings.</param> /// <param name="targetOutputs">The outputs of each specified target (can be null).</param> /// <returns>true, if build was successful</returns> bool BuildProjectFile( string projectFileName, string[] targetNames, IDictionary globalProperties, IDictionary targetOutputs); } }