TeamCity 2020.2 Help

NuGet

Integration Capabilities

TeamCity integrates with NuGet package manager and, when NuGet is installed on agents, provides the following capabilities:

  • Private NuGet feeds based on the builds' published artifacts.

  • A set of NuGet runners to be used in builds on Windows OS, as well as on Linux and MacOS when Mono is installed on the agent.
    • NuGet Installer build runner, which installs and updates NuGet packages.

    • NuGet Pack build runner, which builds NuGet packages.

    • NuGet Publish build runner, which publishes packages to a feed of your choice.

  • NuGet dependency trigger, which allows triggering builds on NuGet feed updates.

Supported Operating Systems:
NuGet build runners are supported on build agents running Windows OS by default. Linux and macOS are supported when Mono is installed on the agent (only NuGet 3.3+ on Mono 4.4.2+ is supported).

Typical Usage Scenarios

Installing NuGet to TeamCity agents

The NuGet trigger and the NuGet-related build runners require the NuGet command line binary configured on the server. They are automatically distributed to agents once configured. Several versions can be installed and a version of your choice can be set as the default one.

To install NuGet.exe on TeamCity:

  1. Go to the Administration | Tools tab.

  2. Click Install tool and select NuGet.exe.

  3. Select whether you want to download (default) NuGet from the public feed or upload your own NuGet package containing NuGet.exe.
    • If the Download radio button is selected, specify the NuGet version to install on all build agents.

    • If the Upload radio button is selected, specify your own NuGet package.

  4. Specify whether this NuGet version will be default using the related checkbox.

  5. Click Add to install the selected NuGet version.

NuGet Packages Cache Clean-up on Agents

NuGet uses several local caches to avoid downloading packages that are already installed, and to provide offline support. If an agent is running out of the space, TeamCity will try to clean NuGet packages cache on the agent.

The TeamCity NuGet cleaner cleans caches in the following Windows directories:

  • %%NUGET_PACKAGES%% environment variable (must be an absolute path)

  • %%LOCALAPPDATA%%\NuGet\Cache
  • %%LOCALAPPDATA%%\NuGet\v3-cache
  • %%user.home%\.nuget\packages

Since TeamCity 2019.2.3, the new automatic package cleaner has been introduced in addition to the existing NuGet cleaner. If .NET SDK is installed on a build agent, TeamCity will use native .NET SDK commands for cleaning. The new cleaner works across all platforms supporting .NET SDK and operates on several levels. It cleans the temporary cache first, and only then gets to cleaning the .nupkg files and HTTP requests, if necessary.

Authentication in private NuGet Feeds

You can use authentication in build-in NuGet feeds or the feeds specified in the NuGet feed credentials build feature. The credentials provider will automatically authenticate requests to these feeds.

API support:

  • NuGet Installer / NuGet Publish runners
    • v3: supported since TeamCity 2018.2, requires NuGet 4.8+ (Windows), NuGet 4.9+ on Mono

    • v1/v2: NuGet 2.0+ is minimum requirement, NuGet 3.5+ is recommended

  • .NET CLI
    • v3: requires .NET CLI 2.1.500

    • v1/v2: not supported

Proxy Configuration

NuGet command line client supports proxy server configuration via the NuGet.config file parameters or environment variables. See NuGet documentation for more details.

Last modified: 11 August 2020