private ToolRestoreResult InstallPackages( ToolManifestPackage package, FilePath?configFile) { string targetFramework = BundledTargetFramework.GetTargetFrameworkMoniker(); if (PackageHasBeenRestored(package, targetFramework)) { return(ToolRestoreResult.Success( saveToCache: Array.Empty <(RestoredCommandIdentifier, RestoredCommand)>(), message: string.Format( LocalizableStrings.RestoreSuccessful, package.PackageId, package.Version.ToNormalizedString(), string.Join(", ", package.CommandNames)))); } try { IToolPackage toolPackage = _toolPackageInstaller.InstallPackageToExternalManagedLocation( new PackageLocation( nugetConfig: configFile, additionalFeeds: _sources, rootConfigDirectory: package.FirstEffectDirectory), package.PackageId, ToVersionRangeWithOnlyOneVersion(package.Version), targetFramework, verbosity: _verbosity); if (!ManifestCommandMatchesActualInPackage(package.CommandNames, toolPackage.Commands)) { return(ToolRestoreResult.Failure( string.Format(LocalizableStrings.CommandsMismatch, JoinBySpaceWithQuote(package.CommandNames.Select(c => c.Value.ToString())), package.PackageId, JoinBySpaceWithQuote(toolPackage.Commands.Select(c => c.Name.ToString()))))); } return(ToolRestoreResult.Success( saveToCache: toolPackage.Commands.Select(command => ( new RestoredCommandIdentifier( toolPackage.Id, toolPackage.Version, NuGetFramework.Parse(targetFramework), Constants.AnyRid, command.Name), command)).ToArray(), message: string.Format( LocalizableStrings.RestoreSuccessful, package.PackageId, package.Version.ToNormalizedString(), string.Join(" ", package.CommandNames)))); } catch (ToolPackageException e) { return(ToolRestoreResult.Failure(package.PackageId, e)); } }
private bool PackageHasBeenRestored( ToolManifestPackage package, string targetFramework) { var sampleRestoredCommandIdentifierOfThePackage = new RestoredCommandIdentifier( package.PackageId, package.Version, NuGetFramework.Parse(targetFramework), Constants.AnyRid, package.CommandNames.First()); return(_localToolsResolverCache.TryLoad( sampleRestoredCommandIdentifierOfThePackage, out var restoredCommand) && _fileSystem.File.Exists(restoredCommand.Executable.Value)); }
private void AssertUpdateSuccess(FilePath?manifestFile = null, NuGetVersion packageVersion = null) { packageVersion ??= _packageNewVersionA; IReadOnlyCollection <ToolManifestPackage> manifestPackages = _toolManifestFinder.Find(manifestFile); manifestPackages.Should().HaveCount(1); ToolManifestPackage addedPackage = manifestPackages.Single(); addedPackage.Version.Should().Be(packageVersion); _localToolsResolverCache.TryLoad(new RestoredCommandIdentifier( addedPackage.PackageId, addedPackage.Version, NuGetFramework.Parse(BundledTargetFramework.GetTargetFrameworkMoniker()), Constants.AnyRid, addedPackage.CommandNames.Single()), out RestoredCommand restoredCommand ).Should().BeTrue(); _fileSystem.File.Exists(restoredCommand.Executable.Value); }
private bool PackageHasBeenRestored( ToolManifestPackage package, string targetFramework) { var sampleRestoredCommandIdentifierOfThePackage = new RestoredCommandIdentifier( package.PackageId, package.Version, NuGetFramework.Parse(targetFramework), "any", package.CommandNames.First()); if (_localToolsResolverCache.TryLoad( sampleRestoredCommandIdentifierOfThePackage, _nugetGlobalPackagesFolder, out _)) { return(true); } return(false); }