|
// 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 enable
using System.Globalization;
using System.Threading.Tasks;
using NuGet.Credentials;
using NuGet.LibraryModel;
using NuGet.Versioning;
namespace NuGet.CommandLine.XPlat
{
internal class RemovePackageReferenceCommandRunner : IPackageReferenceCommandRunner
{
public Task<int> ExecuteCommand(PackageReferenceArgs packageReferenceArgs, MSBuildAPIUtility msBuild)
{
packageReferenceArgs.Logger.LogInformation(string.Format(CultureInfo.CurrentCulture,
Strings.Info_RemovePkgRemovingReference,
packageReferenceArgs.PackageId,
packageReferenceArgs.ProjectPath));
//Setup the Credential Service - This allows the msbuild sdk resolver to auth if needed.
DefaultCredentialServiceUtility.SetupDefaultCredentialService(packageReferenceArgs.Logger, !packageReferenceArgs.Interactive);
var libraryDependency = new LibraryDependency()
{
LibraryRange = new LibraryRange(
name: packageReferenceArgs.PackageId,
versionRange: VersionRange.All,
typeConstraint: LibraryDependencyTarget.Package)
};
// Remove reference from the project
var result = msBuild.RemovePackageReference(packageReferenceArgs.ProjectPath, libraryDependency);
return TaskResult.Integer(result);
}
}
}
|