Using the latest version?
JFrog Platform User Guide
JFrog Artifactory 6.x Documentation
To get the latest version, go to the JFrog Unified Platform
Placing packages to match your repository layout
Defining aCustom Layoutfor your repository does not force you to place your packages in the corresponding structure, however it is recommended to do so since it allows Artifactory to perform different maintenance tasks such asVersion Cleanupautomatically.
It is up to the developer to correctly deploy packages into the corresponding folder. From NuGet 2.5 you can push packages into a folder source as follows:
nuget push mypackage.1.0.0.nupkg -Source http://10.0.0.14:8081/artifactory/api/nuget/nuget-local/path/to/folder
Below is an example of aCustom Layoutnamednuget-default.
In this example, the three fields that are mandatory for module identification are:
- Organization = "orgPath"
- Module = "module"
- Base Revision ("baseRev") is not a part of the layout hierarchy in this example, but it is included here as one of the required fields.
You can configure this Custom Layout as displayed in the image above, or simply copy the below code snippet into the relevant section in yourGlobal Configuration Descriptor:
nuget-default [orgPath]/[module]/[module].[baseRev](-[fileItegRev]).[ext] false .* .*
Since the package layout is in a corresponding folder hierarchy, the Artifactory Version Cleanup tool correctly detects previously installed versions.
Publishing to a Local Repository
When a NuGet repository is selected in theArtifactsmodule Tree Browser, clickSet Me Upto display the code snippets you can use to configure Visual Studio or your NuGet client to use the selected repository to publish or resolve artifacts.
Remote Repositories
When working with remote NuGet repositories, your Artifactory configuration depends on how the remote repositories are set up.
Different NuGet server implementations may provide package resources on different paths, therefore the feed and download resource locations in Artifactory are customizable when proxying a remote NuGet repository.
Here are some examples:
- TheNuGet galleryexposes its feed resource athttps://www.nuget.org/api/v2/Packages和它的下载资源https://www.nuget.org/api/v2/package
Therefore, to define this as a new repository you should set the repositoryURLtohttps://www.nuget.org
, itsFeed Context Pathtoapi/v2
and theDownload Context Pathtoapi/v2/package
。 - The
NuGet.Server
module exposes its feed resource athttp://host:port/nuget/Packages和它的下载资源http://host:port/api/v2/package。
To define this as a new repository you should set the repositoryURLtohttp://host:port, itsFeed Context Pathtonuget
and itsDownload ContextPath toapi/v2/package
。 - 为NuGet V3 API and metadata configuration it is necessary to configure theNuGetV3 Feedhttp://host:port/api/v3/nuget/repoKeywhile the URL can stay withhttp://host:port/artifactory/api/nuget/repoKey/
- Another Artifactory repository (i.e. a Smart Remote NuGet Repository) exposes its feed resource athttp://host:port/artifactory/api/nuget/repoKey/Packages和它的下载资源http://host:port/artifactory/api/nuget/repoKey/Download。
To define this as a new repository you should set the repository URL tohttp://host:port/artifactory/api/nuget/repoKey, itsFeed Context Pathshould be left empty and itsDownload Context PathtoDownload, like this:
Using a proxy server
If you are accessing NuGet Gallery through a proxy server you need to define the following two URLs in the proxy's white list:
- *.nuget.org
- az320820.vo.msecnd.net (NuGet Gallery's current CDN domain)
Virtual Repositories
A Virtual Repository defined in Artifactory aggregates packages from both local and remote repositories.
This allows you to access both locally hosted NuGet packages and remote proxied NuGet libraries from a single URL defined for the virtual repository.
To create a virtual NuGet repositorysetNuGetto be itsPackage Type,andselect the underlying local and remote NuGet repositories to include under theRepositoriessection。
Accessing NuGet Repositories from Visual Studio
NuGet repositories must be prefixed with api/nuget in the path
When configuring Visual Studio to access a NuGet repository through Artfactory, the repository URL must be prefixed withapi/nugetin the path.
为example, if you are using Artifactory standalone or as a local service, you would configure Visual Studio using the following URL:
http://localhost:8081/artifactory/api/nuget/
Or, if you are using Artifactory SaaS the URL would be:
https://
Artifactory exposes its NuGet resources via the REST API at the following URL:http://localhost:8081/artifactory/api/nuget/
This URL handles all NuGet related requests (search, download, upload, delete) and supports both V1 and V2 requests.To use V3 requests, you need to Configure Visual Studio with NuGet v3 API.
To configure the NuGet Visual Studio Extension to use Artifactory, check the corresponding repositories in the "Options" window: (You can access Options from the Tools menu).
Using theNuGet Command Line
NuGet repositories must be prefixed with api/nuget in the path
When using the NuGet command line to access a repository through Artfactory, the repository URL must be prefixed withapi/nugetin the path. This applies to all NuGet commands includingnuget install
andnuget push
。
为example, if you are using Artifactory standalone or as a local service, you would access your NuGet repositories using the following URL:
http://localhost:8081/artifactory/api/nuget/
Or, if you are using Artifactory SaaS the URL would be:
https://
To use the Nuget Command Line tool:
- Download NuGet.exe
- Place it in a well known location in your file system such as c:\utils
- Make sure that NuGet.exe is in your path
为complete information on how to use the NuGet Command Line tool please refer to theNuGet Docs Command Line Reference。
First configure a new source URL pointing to Artifactory:
nuget sources Add -Name Artifactory -Source http://localhost:8081/artifactory/api/nuget/
To use V3 requests, you need to Configure NuGet CLI with NuGet v3 API.
NuGet API Key Authentication
NuGet tools require that sensitive operations such as push and delete are authenticated with the server using anapikey
。The API key you should use is in the form ofusername:password
, where the password can be either clear-text orencrypted。
Set your API key using the NuGet Command Line Interface:
nuget setapikey admin:password -Source Artifactory
Now you can perform operations against the newly added server. For example:
nuget list -Source Artifactory nuget install log4net -Source Artifactory
Anonymous Access to NuGet Repositories
By default, Artifactory allows anonymous access to NuGet repositories. This is defined underSecurity | General Configuration。为details please refer toAllow Anonymous Access。
工作没有匿名访问
In order to be able to trace how users interact with your repositories we recommend that you uncheck theAllow Anonymous Accesssetting described above. This means that users will be required to enter their user name and password when using their NuGet clients.
You can configure your NuGet client to require a username and password using the following command:
nuget sources update -Name Artifactory -UserName admin -Password password
You can verify that your setting has taken effect by checking that the following segment appears in your%APPDATA%\NuGet\NuGet.Config
file:
NuGet.Config
file can also be placed in your project directory, for further information please refer toNuGet Configuration File
Allowing Anonymous Access
Artifactory supports NuGet repositories withAllow Anonymous Accessenabled.
WhenAllow Anonymous Accessis enabled, Artifactory will not query the NuGet client for authentication parameters by default, so you need to indicate to Artifactory to request authentication parameters in a different way.
You can override the default behavior by setting the为ce Authenticationcheckbox in the New or Edit Repository dialog.
When set, Artifactory will first request authentication parameters from the NuGet client before trying to access this repository.
NuGet API v3 Registry Support
Artifactory now supports NuGet API v3 feeds and allows you to proxy remote NuGet API v3 repositories (e.g. theNuGet gallery) and other remote repositories that are set up with the API v3 feed.
To enable API v3, configure the remote repo v3 feed URL value.
配置NuGet CLI / Visual Studio怒Get v3 API
Manually add theprotocolVersion=”3”attribute to the NuGet.Config file:
- 为Linux installation: The file is located under~/.config/NuGet/NuGet.Config
- 为a Windows installation: Locate the file usually under%appdata%\NuGet\NuGet.Configand add "/v3/" to the sourceURL。
... ...
NuGet SemVer 2.0 Package Support
Artifactory now supportsSemVer 2.0 rulesfor NuGet repositories (for both NuGet API v2 and API v3), which means you can now use pre-release numbers with dot notation or add metadata to the version, for example:MyApp.3.0.0-build.60, MyApp.1.0+git.52406.
Artifactory serves the requests for downloading packages in SemVer 2.0 rules. For example, if the latest version for a certain package is in SemVer 2.0 convention, Artifactory will return it to the client. NuGet packages with the SemVer 2.0 convention are served from local, remote, and virtual repositories and for both NuGet API v2, and v3 feeds.
NuGet packages with SemVer2 are not available for old NuGet clients (prior to version 4.3.0). This is a breaking change that was made to align with the official global repository behaviour. To retain the old behaviour, use the artifactory。nuget.disableSemVer2SearchFilterForLocalReposflag.
Viewing Individual NuGet Package Information
You can view all the metadata annotating a NuGet package by choosing the NuPkg file in Artifactory's tree browser and selecting the NuPkg Info tab:
NuGet Build Information
You may store exhaustive build information in Artifactory by running your NuGet builds with JFrog CLI.
JFrog CLI collects build-info from your build agents and then publishes it to Artifactory. Once published, the build info can be viewed in theBuild BrowserunderBuilds。
为more details on NuGet build integration using JFrog CLI, please refer toBuilding NuGet Packagesin the JFrog CLI User Guide