public static async Task Extract ( Solution solution, PackageIdentity packageIdentity, DownloadResourceResult downloadResult, CancellationToken token) { string globalPackagesFolder = await GetPackagesDirectory (solution); var defaultPackagePathResolver = new VersionFolderPathResolver (globalPackagesFolder); string hashPath = defaultPackagePathResolver.GetHashPath (packageIdentity.Id, packageIdentity.Version); if (File.Exists (hashPath)) return; var versionFolderPathContext = new VersionFolderPathContext ( packageIdentity, globalPackagesFolder, NullLogger.Instance, PackageSaveMode.Defaultv3, PackageExtractionBehavior.XmlDocFileSaveMode); downloadResult.PackageStream.Position = 0; await PackageExtractor.InstallFromSourceAsync ( stream => downloadResult.PackageStream.CopyToAsync (stream, BufferSize, token), versionFolderPathContext, token); }
public override async Task<bool> InstallPackageAsync ( PackageIdentity packageIdentity, DownloadResourceResult downloadResourceResult, INuGetProjectContext nuGetProjectContext, CancellationToken token) { return await Runtime.RunInMainThread (async () => { // Check if this NuGet package is already installed and should be removed. PackageReference existingPackageReference = project.FindPackageReference (packageIdentity); if (existingPackageReference != null) { if (ShouldRemoveExistingPackageReference (existingPackageReference, packageIdentity)) { project.PackageReferences.Remove (existingPackageReference); } else { nuGetProjectContext.Log ( MessageLevel.Info, GettextCatalog.GetString ("Package '{0}' already installed.", packageIdentity)); return true; } } bool developmentDependency = false; if (IsNuGetBuildPackagingPackage (packageIdentity)) { await GlobalPackagesExtractor.Extract (project.ParentSolution, packageIdentity, downloadResourceResult, token); developmentDependency = true; GenerateNuGetBuildPackagingTargets (packageIdentity); } var packageReference = new PackageReference (packageIdentity); if (developmentDependency) packageReference.PrivateAssets = "All"; project.PackageReferences.Add (packageReference); await SaveProject (); return true; }); }
public override Task<bool> InstallPackageAsync(PackageIdentity packageIdentity, DownloadResourceResult downloadResourceResult, INuGetProjectContext nuGetProjectContext, CancellationToken token) { return Task.FromResult(true); }
// This gets called for every package install, including dependencies, and is our only chance to handle dependency PackageIdentity instances public override Task<bool> InstallPackageAsync(PackageIdentity packageIdentity, DownloadResourceResult downloadResourceResult, INuGetProjectContext nuGetProjectContext, CancellationToken token) { _packageIdentities.Add(packageIdentity); return base.InstallPackageAsync(packageIdentity, downloadResourceResult, nuGetProjectContext, token); }
public override Task<bool> InstallPackageAsync (PackageIdentity packageIdentity, DownloadResourceResult downloadResourceResult, INuGetProjectContext nuGetProjectContext, CancellationToken token) { throw new NotImplementedException (); }