diff --git a/src/SharpIDE.Application/SharpIDE.Application.csproj b/src/SharpIDE.Application/SharpIDE.Application.csproj index f2dcf6b..4f584ca 100644 --- a/src/SharpIDE.Application/SharpIDE.Application.csproj +++ b/src/SharpIDE.Application/SharpIDE.Application.csproj @@ -9,6 +9,8 @@ + + diff --git a/src/SharpIDE.Photino/Components/SolutionPickerDialog.razor b/src/SharpIDE.Photino/Components/SolutionPickerDialog.razor index 543e5c8..dd08068 100644 --- a/src/SharpIDE.Photino/Components/SolutionPickerDialog.razor +++ b/src/SharpIDE.Photino/Components/SolutionPickerDialog.razor @@ -26,7 +26,7 @@ private async Task PickSolution() { - var files = await PhotinoBlazorApp.MainWindow.ShowOpenFileAsync("Choose Solution File", filters: [("Solution File", [".sln"])]); + var files = await PhotinoBlazorApp.MainWindow.ShowOpenFileAsync("Choose Solution File", filters: [("Solution File", [".sln", ".slnx"])]); var slnFile = files.SingleOrDefault(); _solutionFilePath = slnFile; } diff --git a/src/SharpIDE.Photino/Layout/MainLayout.razor b/src/SharpIDE.Photino/Layout/MainLayout.razor index c9503a3..14dd6fb 100644 --- a/src/SharpIDE.Photino/Layout/MainLayout.razor +++ b/src/SharpIDE.Photino/Layout/MainLayout.razor @@ -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(), + toolsVersion: null, + targetsToBuild: ["Restore", "Build"], + hostServices: null, + flags: BuildRequestDataFlags.None); + var result2 = BuildManager.DefaultBuildManager.Build(buildParameters, buildRequest); + Console.WriteLine(result2.OverallResult); } } diff --git a/src/SharpIDE.Photino/Program.cs b/src/SharpIDE.Photino/Program.cs index cb37ea0..87e41f6 100644 --- a/src/SharpIDE.Photino/Program.cs +++ b/src/SharpIDE.Photino/Program.cs @@ -59,7 +59,8 @@ public class Program }; var instance = MSBuildLocator.QueryVisualStudioInstances().OrderByDescending(instance => instance.Version).First(); - MSBuildLocator.RegisterInstance(instance); + //MSBuildLocator.RegisterInstance(instance); + MSBuildLocator.RegisterDefaults(); app.Run(); }