NuGetTool is a comprehensive utility for simplifying the creation and publishing of NuGet packages. It consists of a modern Web interface, a classic WPF application, and a shared core logic library.
- NuGetTool.Web: A Blazor-based web application providing a premium, cross-platform experience.
- NuGetTool: A classic Windows WPF GUI application.
- NuGetTool.Core: Shared class library containing business logic (Data models, spec generation, Pack/Push commands).
The Web version is the primary tool for modern workflows, featuring dynamic configuration and automated metadata.
- Navigate to:
NuGetTool.Web - Run the server:
dotnet run
- Access at
http://localhost:5000(check terminal for exact URL).
- Dynamic
nuget.config: Generates configuration on-the-fly for non-nuget.org sources (like GitLab). - Auto Metadata: Extracts Package ID and Version automatically from uploaded files.
- Automatic README: Generates a
README.mdcontaining the file list if no description is provided, satisfying NuGet build requirements. - Credential Storage: Load defaults from environment variables (
GITLAB_PACKAGE_REGISTRY_URL,GITLAB_PACKAGE_REGISTRY_USER, etc.) or save them in local storage.
defaults example
export GITLAB_PACKAGE_REGISTRY_URL=http://gitlab.it.xxx.com/api/v4/projects/32/packages/nuget
export GITLAB_PACKAGE_REGISTRY_PASSWORD=xxxxxxxxxx-password
export GITLAB_PACKAGE_REGISTRY_USERNAME=xxxxxx-token-1
A stable Windows-only application for desktop-centric package management.
- Navigate to:
NuGetTool - Run the application:
dotnet run
- Nuspec Mode: Uses
NuGet.exeand a.nuspecfile. Best for legacy or manual file control. - CSPROJ Mode: Uses
dotnetCLI and a dynamically generated.csproj. Best for modern workflows.
- Select Files: Upload (Web) or Add (WPF) the files to be included.
- Review Metadata:
- Package ID: Auto-populated from the first file name.
- Version: Auto-populated from file metadata or timestamps.
- Description: If empty, defaults to a list of included files.
- Build Package: Generates the build specification and runs
pack. - Upload Package: Pushes to
nuget.orgusing an API Key, or to private registries using dynamically generated credentials.