📦

NuGet Package Manager Overview

Jul 20, 2025

Overview

NuGet is a free and open-source package manager for .NET and .NET Framework projects, allowing easy packaging, distribution, and management of software dependencies.

History and Development

  • NuGet was originally created by the Outercurve Foundation in 2010 under the name NuPack.
  • It is currently developed by Microsoft and the .NET Foundation.
  • NuGet has evolved into an ecosystem of tools, services, and hosted package servers.

Features and Functionality

  • NuGet packages are ZIP files with a .nupack or .nupkg extension, containing .NET assemblies and a manifest file.
  • The NuGet client app can create, publish, and consume packages in private or public repositories.
  • The client is available as a command-line tool (nuget.exe), compatible with MSBuild and the .NET Core SDK (dotnet.exe).
  • NuGet was first distributed as a Visual Studio extension and is now natively supported in Visual Studio and Visual Studio for Mac.
  • Integration is also available with JetBrains Rider.

Supported Languages and Platforms

  • Primarily used for .NET and .NET Framework packages.
  • Supports native C++ package creation, aided by CoApp.

Release and Licensing

  • The latest stable release is version 6.11.
  • NuGet is written in C# and runs on the .NET Framework.
  • It is licensed under the Apache License 2.0.

Key Terms & Definitions

  • Package Manager — a tool that automates installing, upgrading, configuring, and removing software packages.
  • NuGet Package — a ZIP file containing compiled code and a manifest, with .nupack or .nupkg extension.
  • Manifest File — a file within a package that describes its contents and dependencies.
  • Repository — a location (public or private) where packages are stored and published.
  • MSBuild — Microsoft's build automation tool for .NET and Visual Studio projects.

Action Items / Next Steps

  • Explore the official website: www.nuget.org for further documentation and package browsing.
  • Try using NuGet to manage dependencies in a .NET or .NET Framework project.