Refactor BuildService

This commit is contained in:
Matt Parker
2025-08-02 21:50:36 +10:00
parent 91ea2c77c3
commit b4c2c7ce8a
2 changed files with 25 additions and 17 deletions

View File

@@ -0,0 +1,20 @@
using Microsoft.Build.Execution;
namespace SharpIDE.Application.Features.Build;
public static class BuildManagerExtensions
{
public static async Task<BuildResult> BuildAsync(this BuildManager buildManager, BuildParameters buildParameters, BuildRequestData buildRequest)
{
var buildCompleteTcs = new TaskCompletionSource<BuildResult>();
buildManager.BeginBuild(buildParameters);
var buildSubmission = buildManager.PendBuildRequest(buildRequest);
buildSubmission.ExecuteAsync(test =>
{
buildCompleteTcs.SetResult(test.BuildResult!);
}, null);
var buildResult = await buildCompleteTcs.Task.ConfigureAwait(false);
buildManager.EndBuild();
return buildResult;
}
}