nuget.client

repository·dev·Indexed 21 days ago

https://github.com/nuget/nuget.client

Core implementation of NuGet client tools, providing the underlying logic for the NuGet CLI, Visual Studio Package Manager, PowerShell Cmdlets, and the .NET CLI's package management capabilities. Includes documentation on End-to-End (E2E) and performance testing, NuGet indexing, MSBuild build tasks, and Visual Studio extensibility APIs via NuGet.VisualStudio and NuGet.VisualStudio.Contracts.

Tokens
41.6K
Snippets
122
Records
196
Agent score
73%

What's inside nuget.client

  1. Overview of NuGet.Packaging

    dev

    NuGet.Packaging is a NuGet client SDK library designed for low-level interaction with .nupkg and .nuspec files via streams. It provides APIs for creating packages, reading existing packages, and manipulating package metadata.

    Warning: It is strongly recommended to use official NuGet tooling (like the dotnet CLI) for package creation instead of this low-level API to ensure packages follow current best practices and are well-formed.

  2. Overview of the NuGet Command Line Interface

    dev
    The NuGet Command Line Interface (CLI) is a toolset provided by the NuGet client for interacting with NuGet services and managing packages via the command line. It allows developers to perform package management tasks such as installing, restoring, and updating packages, as well as managing local package sources and interacting with NuGet feeds.
  3. Overview of NuGet.ProjectModel

    dev

    The NuGet.ProjectModel library provides the core types and interfaces required for PackageReference-based package restoration. It is primarily used to handle the data models and file formats associated with the restore process, including:

    • Lock files: Used to ensure deterministic restores by pinning specific package versions and dependencies.
    • Assets files: The project.assets.json file which contains the resolved dependency graph and information used by build systems to locate packages.
    • Internal restore models: The underlying data structures that represent the state of a project during and after the restore operation.
  4. Understand NuGet's dependency model via NuGet.LibraryModel

    dev
    The NuGet.LibraryModel library provides the core types and interfaces used to represent and understand package dependencies within the NuGet ecosystem. Developers building tools that need to inspect, analyze, or manipulate package dependency graphs should use this library to ensure compatibility with NuGet's internal representation of how libraries depend on one another.
  5. Identify available NuGet Client Tools

    dev

    The nuget.client repository contains the core logic for several primary NuGet client interfaces. Depending on your workflow, you can use these tools:

    • NuGet CLI: A command-line interface for managing packages.
    • NuGet Package Manager for Visual Studio: A GUI-based tool integrated into Visual Studio.
    • PowerShell Cmdlets: PowerShell modules for automating NuGet tasks.
    • dotnet.exe: Integrated NuGet functionality within the .NET CLI.
  6. Identify NuGet test projects

    dev

    The repository contains several tiers of testing projects located in the test/ folder:

    • Core Unit Tests (test/NuGet.Core.Tests): Unit tests for the foundational libraries in src/NuGet.Core (e.g., NuGet.Protocol.Tests, NuGet.Versioning.Test).
    • Visual Studio Test Projects (test/NuGet.Clients.Tests): Unit and integration tests for client-side components in src/NuGet.Clients (e.g., NuGet.PackageManagement.UI.Test, NuGet.VisualStudio.Test).
    • Functional Test Projects: Located in test/NuGet.Clients.FuncTests and test/NuGet.Core.FuncTests for end-to-end validation of core and client workflows.