Skip to content

Commit

Permalink
Fixed issue where the restructured Runtime packages and reference pac…
Browse files Browse the repository at this point in the history
…ks are not ever installed/updated.

Fixed issue where tool does not require .NET SDK version 8.0.100 or newer to be installed.
Fixed issue where a specific runtime version (specified by a --rid argument in the cli) cannot be requested.
Fixed issue where on x64 machines specifying --rid win-x86 would not install the workload into the "Program Files (x86)" install of the .NET SDK.
Fixed issue where installing on an ARM64 Machine might not set the ARM64 runtime to go inside of the normal "Program Files" install of the .NET SDK where the ARM64 version of it lies.
Added the printing of the path to where the .NET SDK install that the tool will install the workload into for the user to be able to update the workloads easier.
Overall restructure of the codebase as well to make things easier to maintain.
  • Loading branch information
AraHaan committed Feb 19, 2024
1 parent c5544ff commit 50dd91d
Show file tree
Hide file tree
Showing 24 changed files with 1,389 additions and 1,247 deletions.
21 changes: 15 additions & 6 deletions installer.sln
Original file line number Diff line number Diff line change
@@ -1,22 +1,31 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.30114.105
# Visual Studio Version 17
VisualStudioVersion = 17.9.34526.213
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elskom.Check", "src/Elskom.Check.csproj", "{C2F18097-0111-4A5F-978F-27F212F3F6D7}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Elskom.Check", "src\Elskom.Check\Elskom.Check.csproj", "{C2F18097-0111-4A5F-978F-27F212F3F6D7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Elskom.Check.Cli.Internal", "src\Elskom.Check.Cli.Internal\Elskom.Check.Cli.Internal.csproj", "{A2C0B6E5-925A-4888-9E94-299E842F11C4}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{C2F18097-0111-4A5F-978F-27F212F3F6D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C2F18097-0111-4A5F-978F-27F212F3F6D7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C2F18097-0111-4A5F-978F-27F212F3F6D7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C2F18097-0111-4A5F-978F-27F212F3F6D7}.Release|Any CPU.Build.0 = Release|Any CPU
{A2C0B6E5-925A-4888-9E94-299E842F11C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A2C0B6E5-925A-4888-9E94-299E842F11C4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A2C0B6E5-925A-4888-9E94-299E842F11C4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A2C0B6E5-925A-4888-9E94-299E842F11C4}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {54646281-95F0-406D-8F68-8D9469F14859}
EndGlobalSection
EndGlobal
12 changes: 12 additions & 0 deletions src/Elskom.Check.Cli.Internal/Commands/InstallCommand.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
namespace Elskom.Check;

internal class InstallCommand : AsyncCommand<WorkloadSettings>
{
public override async Task<int> ExecuteAsync([NotNull] CommandContext context, [NotNull] WorkloadSettings settings)
{
DotNetSdkHelper.GetOrUpdateSdkVersion(ref settings);
var workloadInfos = await NuGetHelper.ResolveWildcardWorkloadPackageVersionsAsync(settings.RuntimeIdentifier!).ConfigureAwait(false);
await workloadInfos.InstallAsync(settings.SdkVersion!, settings.RuntimeIdentifier!).ConfigureAwait(false);
return 0;
}
}
12 changes: 12 additions & 0 deletions src/Elskom.Check.Cli.Internal/Commands/UninstallCommand.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
namespace Elskom.Check;

internal class UninstallCommand : AsyncCommand<WorkloadSettings>
{
public override async Task<int> ExecuteAsync([NotNull] CommandContext context, [NotNull] WorkloadSettings settings)
{
DotNetSdkHelper.GetOrUpdateSdkVersion(ref settings);
var workloadInfos = await NuGetHelper.ResolveWildcardWorkloadPackageVersionsAsync(settings.RuntimeIdentifier!).ConfigureAwait(false);
workloadInfos.Uninstall(settings.SdkVersion!, settings.RuntimeIdentifier!);
return 0;
}
}
12 changes: 12 additions & 0 deletions src/Elskom.Check.Cli.Internal/Commands/UpdateCommand.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
namespace Elskom.Check;

internal class UpdateCommand : AsyncCommand<WorkloadSettings>
{
public override async Task<int> ExecuteAsync([NotNull] CommandContext context, [NotNull] WorkloadSettings settings)
{
DotNetSdkHelper.GetOrUpdateSdkVersion(ref settings);
var workloadInfos = await NuGetHelper.ResolveWildcardWorkloadPackageVersionsAsync(settings.RuntimeIdentifier!).ConfigureAwait(false);
await workloadInfos.UpdateAsync(settings.SdkVersion!, settings.RuntimeIdentifier!).ConfigureAwait(false);
return 0;
}
}
36 changes: 23 additions & 13 deletions src/Constants.cs → src/Elskom.Check.Cli.Internal/Constants.cs
Original file line number Diff line number Diff line change
@@ -1,13 +1,23 @@
namespace Elskom.Check;

internal static class Constants
{
internal const string WorkloadName = "elskom";
internal const string SdkPackName = "Elskom.Sdk";
internal const string RefPackName = "Elskom.Sdk.App.Ref";
internal const string RuntimePackName = "Elskom.Sdk.App";
internal const string TemplatePackName = "Elskom.Sdk.Templates";
internal const string Sdk = "sdk";
internal const string Framework = "framework";
internal const string Template = "template";
}
namespace Elskom.Check;

internal static class Constants
{
internal const string WorkloadName = "elskom";
internal const string SdkPackName = "Elskom.Sdk";
internal const string RefPackName = "Elskom.Sdk.App.Ref";
internal const string RuntimePackName = "Elskom.Sdk.App";
internal const string TemplatePackName = "Elskom.Sdk.Templates";
internal const string Sdk = "sdk";
internal const string Framework = "framework";
internal const string Template = "template";
internal static readonly string[] RuntimePacks = [
"Elskom.Sdk.App.Runtime.win-x86",
"Elskom.Sdk.App.Runtime.win-x64",
"Elskom.Sdk.App.Runtime.win-arm64",
"Elskom.Sdk.App.Runtime.linux-x64",
"Elskom.Sdk.App.Runtime.linux-arm",
"Elskom.Sdk.App.Runtime.linux-arm64",
"Elskom.Sdk.App.Runtime.osx-x64",
"Elskom.Sdk.App.Runtime.osx-arm64"
];
}
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
namespace Elskom.Check;

internal class DotNetSdkInfo
{
internal DotNetSdkInfo(string version, string directory)
: this(version, new DirectoryInfo(directory))
{
}

internal DotNetSdkInfo(string version, DirectoryInfo directory)
{
Version = version;
Directory = directory;
}

internal string Version { get; set; }

internal DirectoryInfo Directory { get; set; }
}
namespace Elskom.Check;

internal class DotNetSdkInfo
{
internal DotNetSdkInfo(string version, string directory)
: this(version, new DirectoryInfo(directory))
{
}

internal DotNetSdkInfo(string version, DirectoryInfo directory)
{
Version = version;
Directory = directory;
}

internal string Version { get; set; }

internal DirectoryInfo Directory { get; set; }
}
24 changes: 24 additions & 0 deletions src/Elskom.Check.Cli.Internal/Elskom.Check.Cli.Internal.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<LangVersion>latest</LangVersion>
<Authors>Els_kom org.</Authors>
<Owners>Els_kom org.</Owners>
<AssemblyFileVersion>$(Version)</AssemblyFileVersion>
<ContinuousIntegrationBuild Condition="'$(GITHUB_ACTIONS)' == 'true'">true</ContinuousIntegrationBuild>
<DebugType>embedded</DebugType>
<RootNamespace>Elskom.Check</RootNamespace>
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
<AnalysisLevel>preview</AnalysisLevel>
<IsPackable>false</IsPackable>
</PropertyGroup>


<ItemGroup>
<InternalsVisibleTo Include="Elskom.Check" />
</ItemGroup>

</Project>
Loading

0 comments on commit 50dd91d

Please sign in to comment.