Build sln on load

This commit is contained in:
Matt Parker
2025-07-31 20:06:53 +10:00
parent 620d65b166
commit 898a83faf5
4 changed files with 36 additions and 3 deletions

View File

@@ -1,4 +1,10 @@
@inherits LayoutComponentBase
@using Microsoft.Build.Construction
@using Microsoft.Build.Definition
@using Microsoft.Build.Execution
@using Microsoft.Build.Framework
@using Microsoft.Build.Logging
@using SharpIDE.Application.Features.SolutionDiscovery
@inherits LayoutComponentBase
@inject IDialogService DialogService
@@ -42,5 +48,29 @@
if (result.Canceled) throw new OperationCanceledException("Dialog was canceled");
var solutionFilePath = (string)result.Data!;
_solutionFilePath = solutionFilePath;
var buildParameters = new BuildParameters
{
Loggers =
[
//new BinaryLogger { Parameters = "msbuild.binlog" },
new ConsoleLogger(LoggerVerbosity.Quiet),
],
};
// var solutionFile = GetNodesInSolution.ParseSolutionFileFromPath(_solutionFilePath);
// ArgumentNullException.ThrowIfNull(solutionFile);
// var projects = GetNodesInSolution.GetCSharpProjectObjectsFromSolutionFile(solutionFile);
// var projectRoot = projects.First();
// var buildRequest = new BuildRequestData(
// ProjectInstance.FromProjectRootElement(projectRoot, new ProjectOptions()),
// targetsToBuild: ["Restore", "Build"]);
var buildRequest = new BuildRequestData(projectFullPath : _solutionFilePath,
globalProperties: new Dictionary<string, string?>(),
toolsVersion: null,
targetsToBuild: ["Restore", "Build"],
hostServices: null,
flags: BuildRequestDataFlags.None);
var result2 = BuildManager.DefaultBuildManager.Build(buildParameters, buildRequest);
Console.WriteLine(result2.OverallResult);
}
}