all buttons
This commit is contained in:
@@ -5,9 +5,16 @@ using Microsoft.Build.Logging;
|
|||||||
|
|
||||||
namespace SharpIDE.Application.Features.Build;
|
namespace SharpIDE.Application.Features.Build;
|
||||||
|
|
||||||
|
public enum BuildType
|
||||||
|
{
|
||||||
|
Build,
|
||||||
|
Rebuild,
|
||||||
|
Clean,
|
||||||
|
Restore
|
||||||
|
}
|
||||||
public class BuildService
|
public class BuildService
|
||||||
{
|
{
|
||||||
public async Task BuildSolutionAsync(string solutionFilePath)
|
public async Task MsBuildSolutionAsync(string solutionFilePath, BuildType buildType = BuildType.Build)
|
||||||
{
|
{
|
||||||
var buildParameters = new BuildParameters
|
var buildParameters = new BuildParameters
|
||||||
{
|
{
|
||||||
@@ -17,11 +24,19 @@ public class BuildService
|
|||||||
new ConsoleLogger(LoggerVerbosity.Quiet),
|
new ConsoleLogger(LoggerVerbosity.Quiet),
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
string[] targetsToBuild = buildType switch
|
||||||
|
{
|
||||||
|
BuildType.Build => ["Restore", "Build"],
|
||||||
|
BuildType.Rebuild => ["Restore", "Rebuild"],
|
||||||
|
BuildType.Clean => ["Clean"],
|
||||||
|
BuildType.Restore => ["Restore"],
|
||||||
|
_ => throw new ArgumentOutOfRangeException(nameof(buildType), buildType, null)
|
||||||
|
};
|
||||||
var buildRequest = new BuildRequestData(
|
var buildRequest = new BuildRequestData(
|
||||||
projectFullPath : solutionFilePath,
|
projectFullPath : solutionFilePath,
|
||||||
globalProperties: new Dictionary<string, string?>(),
|
globalProperties: new Dictionary<string, string?>(),
|
||||||
toolsVersion: null,
|
toolsVersion: null,
|
||||||
targetsToBuild: ["Restore", "Build"],
|
targetsToBuild: targetsToBuild,
|
||||||
hostServices: null,
|
hostServices: null,
|
||||||
flags: BuildRequestDataFlags.None);
|
flags: BuildRequestDataFlags.None);
|
||||||
|
|
||||||
|
|||||||
@@ -11,8 +11,9 @@
|
|||||||
<MudIconButton Icon="@Icons.Material.Filled.Menu" Color="Color.Inherit" Edge="Edge.Start" OnClick="@((e) => DrawerToggle())" />
|
<MudIconButton Icon="@Icons.Material.Filled.Menu" Color="Color.Inherit" Edge="Edge.Start" OnClick="@((e) => DrawerToggle())" />
|
||||||
<MudButtonGroup OverrideStyles="false">
|
<MudButtonGroup OverrideStyles="false">
|
||||||
<MudButton Variant="Variant.Filled" Size="Size.Small" Color="Color.Primary" OnClick="@BuildSolution">Build</MudButton>
|
<MudButton Variant="Variant.Filled" Size="Size.Small" Color="Color.Primary" OnClick="@BuildSolution">Build</MudButton>
|
||||||
<MudButton Variant="Variant.Outlined" Size="Size.Small" Color="Color.Primary">Rebuild</MudButton>
|
<MudButton Variant="Variant.Outlined" Size="Size.Small" Color="Color.Primary" OnClick="@RebuildSolution">Rebuild</MudButton>
|
||||||
<MudButton Variant="Variant.Outlined" Size="Size.Small" Color="Color.Primary">Clean</MudButton>
|
<MudButton Variant="Variant.Outlined" Size="Size.Small" Color="Color.Primary" OnClick="@CleanSolution">Clean</MudButton>
|
||||||
|
<MudButton Variant="Variant.Outlined" Size="Size.Small" Color="Color.Primary" OnClick="@RestoreSolution">Restore</MudButton>
|
||||||
</MudButtonGroup>
|
</MudButtonGroup>
|
||||||
</MudAppBar>
|
</MudAppBar>
|
||||||
<MudDrawer @bind-Open="@_drawerOpen" Width="400px" ClipMode="DrawerClipMode.Always">
|
<MudDrawer @bind-Open="@_drawerOpen" Width="400px" ClipMode="DrawerClipMode.Always">
|
||||||
@@ -59,8 +60,12 @@
|
|||||||
_solutionModel = solutionModel;
|
_solutionModel = solutionModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task BuildSolution()
|
private async Task BuildSolution() => await MsBuildSolution(BuildType.Build);
|
||||||
|
private async Task RebuildSolution() => await MsBuildSolution(BuildType.Rebuild);
|
||||||
|
private async Task CleanSolution() => await MsBuildSolution(BuildType.Clean);
|
||||||
|
private async Task RestoreSolution() => await MsBuildSolution(BuildType.Restore);
|
||||||
|
private async Task MsBuildSolution(BuildType buildType)
|
||||||
{
|
{
|
||||||
await BuildService.BuildSolutionAsync(_solutionFilePath!);
|
await BuildService.MsBuildSolutionAsync(_solutionFilePath!, buildType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user