public void TestMultiBitPlan() { var delete = new DotNetCoreSdk[] { new DotNetCoreSdk(is64Bit: true, new SdkVersion(1, 0, 1)), new DotNetCoreSdk(is64Bit: false, new SdkVersion(1, 0, 1)), }; var keep = new DotNetCoreSdk[] { new DotNetCoreSdk(is64Bit: true, new SdkVersion(1, 0, 4)), new DotNetCoreSdk(is64Bit: false, new SdkVersion(1, 0, 4)), new DotNetCoreSdk(is64Bit: false, new SdkVersion(1, 1, 4)), }; var vsKeep = new DotNetCoreSdk[] { }; var vsVersions = new SdkVersion[] { }; TestPlan(delete, keep, vsKeep, keepOnlyLastVersionPerRuntime: false, vsVersions); }
private static IEnumerable <DotNetCoreSdk> GetSdks() { using (var uninstallKey = Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Uninstall")) { var subKeyNames = uninstallKey.GetSubKeyNames(); foreach (var name in subKeyNames) { using (var subKey = uninstallKey.OpenSubKey(name)) { string displayName = (string)subKey.GetValue("DisplayName"); if (displayName?.StartsWith("Microsoft .NET Core SDK", StringComparison.OrdinalIgnoreCase) == true) { const string pattern = @"Microsoft .NET Core SDK( -)? (?<version>\d+\.\d+\.\d+)( - (?<prerelease>\w+\d+))? \((?<bitness>x\d+)\)"; var match = Regex.Match(displayName, pattern); if (match.Success) { var versionString = match.Groups["version"].Value; var prerelease = match.Groups["prerelease"].Value; var bitness = match.Groups["bitness"].Value; var fullVersionString = versionString; if (!string.IsNullOrEmpty(prerelease)) { fullVersionString += "-" + prerelease; } var version = SemanticVersion.Parse(fullVersionString); var sdk = new DotNetCoreSdk(displayName, version, bitness, name); yield return(sdk); } } } } } }
public void TestWithPreRelease() { var delete = new DotNetCoreSdk[] { new DotNetCoreSdk(is64Bit: true, new SdkVersion(2, 2, 100, "-pre1")), new DotNetCoreSdk(is64Bit: true, new SdkVersion(2, 3, 100, "-pre1")), new DotNetCoreSdk(is64Bit: true, new SdkVersion(2, 3, 100)), }; var keep = new DotNetCoreSdk[] { new DotNetCoreSdk(is64Bit: true, new SdkVersion(2, 2, 100)), new DotNetCoreSdk(is64Bit: true, new SdkVersion(2, 3, 101, "-pre1")), new DotNetCoreSdk(is64Bit: true, new SdkVersion(2, 4, 100, "-pre1")), }; var vsKeep = new DotNetCoreSdk[] { }; var vsVersions = new SdkVersion[] { }; TestPlan(delete, keep, vsKeep, keepOnlyLastVersionPerRuntime: false, vsVersions); }
protected void DotNetCoreSdksInstalled(params string[] versions) { var dotNetCoreVersions = versions.Select(DotNetCoreVersion.Parse) .OrderByDescending(version => version); DotNetCoreSdk.SetVersions(dotNetCoreVersions); DotNetCoreSdk.SetInstalled(dotNetCoreVersions.Any()); }
public void TearDownTestFixture() { DotNetCoreSdk.SetInstalled(sdkInstalled); DotNetCoreSdk.SetVersions(sdkVersions); DotNetCoreSdk.SetSdkRootPath(sdkRootPath); DotNetCoreRuntime.SetInstalled(runtimeInstalled); DotNetCoreRuntime.SetVersions(runtimeVersions); }
public void Init() { directories = new HashSet <string> (); templateFiles = new List <string> (); sdkRootPath = ToNativePath("/usr/local/share/dotnet/sdk"); DotNetCoreSdk.SetSdkRootPath(sdkRootPath); provider = new DotNetCoreProjectTemplateStringTagProvider(); provider.DirectoryExists = DirectoryExists; provider.EnumerateFiles = EnumerateFiles; }
public void SaveSdkLocationSetting(FilePath location) { if (location == DotNetCoreRuntime.FileName) { return; } var path = new DotNetCorePath(location); DotNetCoreSdkPaths sdkPaths = GetSdkPaths(path); DotNetCoreSdk.Update(sdkPaths); DotNetCoreRuntime.Update(path); // All open .NET Core projects need to be re-evaluated so the correct // SDK MSBuild imports are used. ReevaluateAllOpenDotNetCoreProjects().Ignore(); }
[TestCase(".NETCoreApp", "2.1", new [] { "2.1.400" }, false, true)] // v2.1.400 will support .NET Core 2.1 public void IsSupportedTargetFramework( string frameworkIdentifier, string frameworkVersion, string[] installedSdkVersions, bool msbuildSdksInstalled, // True if Mono has the .NET Core sdks. bool expected) { string framework = $"{frameworkIdentifier},Version=v{frameworkVersion}"; var targetFrameworkMoniker = TargetFrameworkMoniker.Parse(framework); var versions = installedSdkVersions.Select(version => DotNetCoreVersion.Parse(version)) .OrderByDescending(version => version) .ToArray(); bool actual = DotNetCoreSdk.IsSupported(targetFrameworkMoniker, versions, msbuildSdksInstalled); Assert.AreEqual(expected, actual); }
public void TestManyVersionsByRuntime() { var delete = new DotNetCoreSdk[] { new DotNetCoreSdk(is64Bit: true, new SdkVersion(1, 0, 1)), new DotNetCoreSdk(is64Bit: true, new SdkVersion(1, 0, 4)), new DotNetCoreSdk(is64Bit: true, new SdkVersion(1, 1, 4)), new DotNetCoreSdk(is64Bit: true, new SdkVersion(2, 0, 0)), new DotNetCoreSdk(is64Bit: true, new SdkVersion(2, 0, 3)), new DotNetCoreSdk(is64Bit: true, new SdkVersion(2, 1, 2)), new DotNetCoreSdk(is64Bit: true, new SdkVersion(2, 1, 4)), new DotNetCoreSdk(is64Bit: true, new SdkVersion(2, 1, 200)), new DotNetCoreSdk(is64Bit: true, new SdkVersion(2, 1, 400)), new DotNetCoreSdk(is64Bit: true, new SdkVersion(2, 1, 401)), new DotNetCoreSdk(is64Bit: true, new SdkVersion(2, 1, 402)), new DotNetCoreSdk(is64Bit: true, new SdkVersion(2, 1, 403)), new DotNetCoreSdk(is64Bit: true, new SdkVersion(2, 2, 100)), new DotNetCoreSdk(is64Bit: true, new SdkVersion(2, 2, 103)), new DotNetCoreSdk(is64Bit: true, new SdkVersion(2, 2, 104)), new DotNetCoreSdk(is64Bit: true, new SdkVersion(3, 0, 100)), }; var keep = new DotNetCoreSdk[] { new DotNetCoreSdk(is64Bit: true, new SdkVersion(1, 1, 13)), new DotNetCoreSdk(is64Bit: true, new SdkVersion(2, 1, 202)), new DotNetCoreSdk(is64Bit: true, new SdkVersion(2, 1, 404)), new DotNetCoreSdk(is64Bit: true, new SdkVersion(2, 2, 105)), new DotNetCoreSdk(is64Bit: true, new SdkVersion(3, 0, 101)), }; var vsKeep = new DotNetCoreSdk[] { }; var vsVersions = new SdkVersion[] { }; TestPlan(delete, keep, vsKeep, keepOnlyLastVersionPerRuntime: true, vsVersions); }
public void TestVsVersionPinWithRuntimeKeep() { var delete = new DotNetCoreSdk[] { new DotNetCoreSdk(is64Bit: true, new SdkVersion(2, 2, 100)), new DotNetCoreSdk(is64Bit: true, new SdkVersion(2, 2, 101)), new DotNetCoreSdk(is64Bit: true, new SdkVersion(2, 2, 105)), new DotNetCoreSdk(is64Bit: true, new SdkVersion(2, 2, 200)), new DotNetCoreSdk(is64Bit: true, new SdkVersion(2, 2, 202)), new DotNetCoreSdk(is64Bit: true, new SdkVersion(2, 2, 203)), new DotNetCoreSdk(is64Bit: true, new SdkVersion(2, 2, 204)), new DotNetCoreSdk(is64Bit: true, new SdkVersion(2, 2, 300)), new DotNetCoreSdk(is64Bit: true, new SdkVersion(2, 2, 301)), new DotNetCoreSdk(is64Bit: true, new SdkVersion(2, 3, 100)), }; var keep = new DotNetCoreSdk[] { new DotNetCoreSdk(is64Bit: true, new SdkVersion(2, 2, 201)), new DotNetCoreSdk(is64Bit: true, new SdkVersion(2, 2, 205)), new DotNetCoreSdk(is64Bit: true, new SdkVersion(2, 2, 305)), new DotNetCoreSdk(is64Bit: true, new SdkVersion(2, 3, 101)), }; var vsKeep = new DotNetCoreSdk[] { new DotNetCoreSdk(is64Bit: true, new SdkVersion(2, 2, 201)), new DotNetCoreSdk(is64Bit: true, new SdkVersion(2, 2, 205)), }; var vsVersions = new SdkVersion[] { new SdkVersion(2, 2, 201), }; TestPlan(delete, keep, vsKeep, keepOnlyLastVersionPerRuntime: true, vsVersions); }
protected void DotNetCoreSdksNotInstalled() { DotNetCoreSdksInstalled(new string[0]); DotNetCoreSdk.SetInstalled(false); DotNetCoreSdk.SetSdkRootPath(null); }