🐛 Fix self contained app locating MSBuild

This commit is contained in:
Matthew Parker [SSW]
2024-01-17 16:21:55 +10:00
parent 80d6a11c63
commit 5cb6c3c604
4 changed files with 13 additions and 3 deletions

View File

@@ -162,6 +162,7 @@ public partial class MainWindowViewModel : ViewModelBase
{ {
ResultsLabel = "Failed to update all projects in solution to .NET 8"; ResultsLabel = "Failed to update all projects in solution to .NET 8";
ParityResults?.Add(e.Message); ParityResults?.Add(e.Message);
ParityResults?.Add(e.ToString());
} }
} }

View File

@@ -1,6 +1,5 @@
using Avalonia.Controls; using Avalonia.Controls;
using Avalonia.Interactivity; using Microsoft.Build.Locator;
using DotNetSolutionTools.App.ViewModels;
namespace DotNetSolutionTools.App.Views; namespace DotNetSolutionTools.App.Views;
@@ -8,6 +7,11 @@ public partial class MainWindow : Window
{ {
public MainWindow() public MainWindow()
{ {
var instance = MSBuildLocator
.QueryVisualStudioInstances()
.OrderByDescending(instance => instance.Version)
.First();
MSBuildLocator.RegisterInstance(instance);
InitializeComponent(); InitializeComponent();
} }
} }

View File

@@ -1,4 +1,5 @@
using DotNetSolutionTools.CLI.Commands; using DotNetSolutionTools.CLI.Commands;
using Microsoft.Build.Locator;
using Spectre.Console.Cli; using Spectre.Console.Cli;
var app = new CommandApp(); var app = new CommandApp();
@@ -13,4 +14,7 @@ app.Configure(config =>
config.AddCommand<TreatWarningsAsErrorsCommand>("warnings-as-errors"); config.AddCommand<TreatWarningsAsErrorsCommand>("warnings-as-errors");
}); });
var instance = MSBuildLocator.QueryVisualStudioInstances().OrderByDescending(instance => instance.Version).First();
MSBuildLocator.RegisterInstance(instance);
return await app.RunAsync(args); return await app.RunAsync(args);

View File

@@ -7,7 +7,8 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.Build" Version="17.8.3" /> <PackageReference Include="Microsoft.Build" Version="17.8.3" ExcludeAssets="runtime" />
<PackageReference Include="Microsoft.Build.Locator" Version="1.6.10" />
<PackageReference Include="NuGet.Protocol" Version="6.8.0" /> <PackageReference Include="NuGet.Protocol" Version="6.8.0" />
</ItemGroup> </ItemGroup>