public void GivenTemplateLocatorItCanResolveSdkVersion() { var environment = new TestEnvironment(_testAssetsManager); const string sdkVersion = "99.99.97"; environment.CreateSdkDirectory(ProgramFiles.X64, "Some.Test.Sdk", sdkVersion); environment.CreateMuxerAndAddToPath(ProgramFiles.X64); var resolver = new TemplateLocator.TemplateLocator(environment.GetEnvironmentVariable, new VSSettings(environment.VSSettingsFile?.FullName, environment.DisallowPrereleaseByDefault)); resolver.TryGetDotnetSdkVersionUsedInVs("15.8", out var version).Should().BeTrue(); version.Should().Be(sdkVersion); }
public Task <IReadOnlyList <ITemplatePackage> > GetAllTemplatePackagesAsync(CancellationToken cancellationToken) { var list = new List <TemplatePackage>(); var optionalWorkloadLocator = new TemplateLocator.TemplateLocator(); var sdkDirectory = Path.GetDirectoryName(typeof(DotnetFiles).Assembly.Location); var sdkVersion = Path.GetFileName(sdkDirectory); var dotnetRootPath = Path.GetDirectoryName(Path.GetDirectoryName(sdkDirectory)); var packages = optionalWorkloadLocator.GetDotnetSdkTemplatePackages(sdkVersion, dotnetRootPath); var fileSystem = _environmentSettings.Host.FileSystem; foreach (var packageInfo in packages) { list.Add(new TemplatePackage(this, packageInfo.Path, fileSystem.GetLastWriteTimeUtc(packageInfo.Path))); } return(Task.FromResult <IReadOnlyList <ITemplatePackage> >(list)); }