mirror of
https://github.com/danbulant/Cosmos
synced 2026-05-19 04:18:43 +00:00
Disable auto-install of workloads
Disable auto-install of workloads
This commit is contained in:
parent
274c5c8b7a
commit
3f3d6ab5ef
6 changed files with 23 additions and 7 deletions
|
|
@ -14,6 +14,7 @@ namespace Cosmos.Build.Builder.Dependencies
|
|||
private const string InnoSetupInstallerUrl = "http://www.jrsoftware.org/download.php/is.exe";
|
||||
|
||||
public string Name => "Inno Setup";
|
||||
public bool ShouldInstallByDefault => true;
|
||||
|
||||
private readonly IInnoSetupService _innoSetupService;
|
||||
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ namespace Cosmos.Build.Builder.Dependencies
|
|||
internal class ReposDependency : IDependency
|
||||
{
|
||||
public string Name => "Repos: IL2CPU, XSharp and Common";
|
||||
public bool ShouldInstallByDefault => true;
|
||||
|
||||
private readonly string _cosmosDir;
|
||||
private readonly IEnumerable<Repo> _repos;
|
||||
|
|
|
|||
|
|
@ -9,11 +9,12 @@ namespace Cosmos.Build.Builder.Dependencies
|
|||
internal class VisualStudioDependency : IDependency
|
||||
{
|
||||
private static readonly Version MinimumVsVersion = new Version(15, 9);
|
||||
|
||||
public bool ShouldInstallByDefault => true;
|
||||
public string Name => $"Visual Studio {MinimumVsVersion.Major}.{MinimumVsVersion.Minor}+";
|
||||
|
||||
private readonly ISetupInstance2 _visualStudioInstance;
|
||||
|
||||
|
||||
public VisualStudioDependency(ISetupInstance2 visualStudioInstance)
|
||||
{
|
||||
_visualStudioInstance = visualStudioInstance;
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ namespace Cosmos.Build.Builder.Dependencies
|
|||
NetCoreToolsWorkload,
|
||||
VisualStudioExtensionsWorkload
|
||||
};
|
||||
|
||||
public bool ShouldInstallByDefault => false;
|
||||
public string Name => "Visual Studio Workloads";
|
||||
|
||||
private readonly ISetupInstance2 _visualStudioInstance;
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ namespace Cosmos.Build.Builder
|
|||
internal interface IDependency
|
||||
{
|
||||
string Name { get; }
|
||||
bool ShouldInstallByDefault { get; }
|
||||
|
||||
Task<bool> IsInstalledAsync(CancellationToken cancellationToken);
|
||||
Task InstallAsync(CancellationToken cancellationToken);
|
||||
|
|
|
|||
|
|
@ -109,15 +109,27 @@ namespace Cosmos.Build.Builder.ViewModels
|
|||
{
|
||||
_logger.LogMessage($"{dependency.Name} not found.");
|
||||
|
||||
using (var viewModel = new DependencyInstallationDialogViewModel(dependency))
|
||||
if (dependency.ShouldInstallByDefault)
|
||||
{
|
||||
_dependencyInstallationDialogService.ShowDialog(viewModel);
|
||||
|
||||
if (!viewModel.InstallationSucceeded)
|
||||
using (var viewModel = new DependencyInstallationDialogViewModel(dependency))
|
||||
{
|
||||
throw new Exception($"Dependency installation failed! Dependency name: {dependency.Name}");
|
||||
_dependencyInstallationDialogService.ShowDialog(viewModel);
|
||||
|
||||
if (!viewModel.InstallationSucceeded)
|
||||
{
|
||||
throw new Exception($"Dependency installation failed! Dependency name: {dependency.Name}");
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show($"{dependency.Name} is not installed. Please install {dependency.Name}");
|
||||
_logger.SetError();
|
||||
_logger.NewSection("Error");
|
||||
_logger.LogMessage($"{dependency.Name} not found.");
|
||||
_logger.SetError();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue