| File: IInstallationCompatibility.cs | Web Access |
| Project: src\nuget-client\src\NuGet.Core\NuGet.PackageManagement\NuGet.PackageManagement.csproj (NuGet.PackageManagement) |
// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. #nullable disable using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using NuGet.Commands; using NuGet.Common; using NuGet.Packaging.Core; using NuGet.ProjectManagement; using NuGet.Protocol.Core.Types; namespace NuGet.PackageManagement { /// <summary> /// Validates the compatibility of a installed packages for the given project type. This /// component should be used after packages have been downloaded to disk but have not yet /// been installed to the project. If an installed package is not compatibile with the given /// project, an exception is thrown. The checks performed by this class are based on /// package minimum client versions and package types. /// </summary> public interface IInstallationCompatibility { /// <summary> /// Validates the compatibility of a multiple installed packages for the given project type. /// </summary> /// <param name="nuGetProject"> /// The NuGet project. The type of the NuGet project determines the sorts or validations that are done. /// </param> /// <param name="pathContext">The path context used to find the installed packages.</param> /// <param name="nuGetProjectActions">The project actions.</param> /// <param name="restoreResult">The restore result generated during installation.</param> void EnsurePackageCompatibility( NuGetProject nuGetProject, INuGetPathContext pathContext, IEnumerable<NuGetProjectAction> nuGetProjectActions, RestoreResult restoreResult); /// <summary> /// Asynchronously validates the compatibility of a single downloaded package. /// </summary> /// <param name="nuGetProject">The NuGet project. The type of the NuGet project determines the sorts or /// validations that are done.</param> /// <param name="packageIdentity">The identity of that package contained in the download result.</param> /// <param name="resourceResult">The downloaded package.</param> /// <param name="cancellationToken">A cancellation token.</param>. /// <returns>A task that represents the asynchronous operation.</returns> /// <exception cref="ArgumentNullException">Thrown if <paramref name="nuGetProject" /> /// is <see langword="null" />.</exception> /// <exception cref="ArgumentNullException">Thrown if <paramref name="packageIdentity" /> /// is <see langword="null" />.</exception> /// <exception cref="ArgumentNullException">Thrown if <paramref name="resourceResult" /> /// is <see langword="null" />.</exception> /// <exception cref="OperationCanceledException">Thrown if <paramref name="cancellationToken" /> /// is cancelled.</exception> Task EnsurePackageCompatibilityAsync( NuGetProject nuGetProject, PackageIdentity packageIdentity, DownloadResourceResult resourceResult, CancellationToken cancellationToken); } }