GitLab NuGet Repository
原文:https://docs.gitlab.com/ee/user/packages/nuget_repository/
- Setting up your development environment
- Enabling the NuGet Repository
- Adding the GitLab NuGet Repository as a source to NuGet
- Uploading packages
- Install packages
GitLab NuGet Repository
Introduced in GitLab Premium 12.8.
使用 GitLab NuGet 存储库,每个项目都可以拥有自己的空间来存储 NuGet 软件包.
GitLab NuGet 存储库可用于:
Setting up your development environment
您将需要NuGet CLI 5.2 或更高版本 . 早期版本尚未针对 GitLab NuGet 存储库进行测试,因此可能无法正常工作. 如果您具有Visual Studio ,则可能已经安装了 NuGet CLI.
或者,您可以使用.NET SDK 3.0 或更高版本 ,该版本将安装 NuGet CLI.
您可以通过以下方法确认已正确安装NuGet CLI :
nuget help
您应该看到类似以下内容:
NuGet Version: 5.2.0.6090
usage: NuGet <command> [args] [options]
Type 'NuGet help <command>' for help on a specific command.
Available commands:
[output truncated]
macOS support
对于 macOS,您还可以使用Mono运行 NuGet CLI. 对于 Homebrew 用户,请运行brew install mono
来安装 Mono. 然后,您应该能够从NuGet CLI 页面下载 Windows C#二进制文件nuget.exe
并运行:
mono nuget.exe
Enabling the NuGet Repository
注意:仅当您的 GitLab 管理员启用了对 Package Registry 的支持时,此选项才可用.
启用 NuGet 存储库后,默认情况下它将可用于所有新项目. 要为现有项目启用它,或者要禁用它:
- 导航到项目的“设置”>”常规”>”可见性,项目功能,权限” .
- 找到”软件包”功能并启用或禁用它.
- 单击保存更改以使更改生效.
然后,您应该能够在左侧栏中看到” 程序包和注册表”部分.
Adding the GitLab NuGet Repository as a source to NuGet
您将需要以下内容:
- 您的 GitLab 用户名.
- 个人访问令牌或部署令牌. 对于存储库身份验证:
- 您的来源的合适名称.
- 您的项目 ID,可以在项目的主页上找到.
您现在可以使用以下方法向 NuGet 添加新的源:
Add NuGet Repository source with NuGet CLI
要将 GitLab NuGet 存储库添加为带有nuget
的源:
nuget source Add -Name <source_name> -Source "https://gitlab-instance.example.com/api/v4/projects/<your_project_id>/packages/nuget/index.json" -UserName <gitlab_username or deploy_token_username> -Password <gitlab_personal_access_token or deploy_token>
Where:
<source_name>
是所需的源名称.
例如:
nuget source Add -Name "GitLab" -Source "https://gitlab.example/api/v4/projects/10/packages/nuget/index.json" -UserName carol -Password 12345678asdf
Add NuGet Repository source with Visual Studio
- Open Visual Studio.
- 打开” 文件”>”选项” (Windows)或” Visual Studio”>”首选项” (Mac OS).
- 在NuGet部分中,打开Sources . 您将看到所有 NuGet 来源的列表.
- Click Add.
填写以下字段:
- 名称 :源的期望名称
- 位置 :
https://gitlab.com/api/v4/projects/<your_project_id>/packages/nuget/index.json
:https://gitlab.com/api/v4/projects/<your_project_id>/packages/nuget/index.json
- 将
<your_project_id>
替换为您的项目 ID. - 如果您具有自行管理的 GitLab 安装,
gitlab.com
使用您的域名替换gitlab.com
.
- 将
- 用户名:您的 GitLab 用户名或部署令牌用户名
- 密码 :您的个人访问令牌或部署令牌
Click Save.
如有任何警告,请确保Location , Username和Password正确.
Add NuGet Repository source with .NET CLI
要将 GitLab NuGet 存储库添加为.NET 的源, nuget.config
在项目的根目录中创建一个名为nuget.config
的文件,其内容如下:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<clear />
<add key="gitlab" value="https://gitlab-instance.example.com/api/v4/projects/<your_project_id>/packages/nuget/index.json" />
</packageSources>
<packageSourceCredentials>
<gitlab>
<add key="Username" value="<gitlab_username or deploy_token_username>" />
<add key="ClearTextPassword" value="<gitlab_personal_access_token or deploy_token>" />
</gitlab>
</packageSourceCredentials>
</configuration>
Uploading packages
上载套件时,请注意:
- 允许的最大大小为 50 MB.
- 如果您多次上传具有相同版本的相同程序包,则每次连续上传都将保存为单独的文件. 安装软件包时,GitLab 将提供最新文件.
- 将软件包上传到 GitLab 时,它们不会立即显示在项目的软件包 UI 中. 处理包裹最多可能需要 10 分钟.
Upload packages with NuGet CLI
本部分假定您的项目已正确构建,并且已经使用 NuGet CLI 创建了 NuGet 软件包 . 使用以下命令上传软件包:
nuget push <package_file> -Source <source_name>
Where:
Upload packages with .NET CLI
本节假定您的项目已正确构建,并且已经使用.NET CLI 创建了 NuGet 软件包 . 使用以下命令上传软件包:
dotnet nuget push <package_file> --source <source_name>
Where:
例如:
dotnet nuget push MyPackage.1.0.0.nupkg --source gitlab
Install packages
Install a package with NuGet CLI
警告:默认情况下, nuget
检查的官方消息nuget.org
第一. 如果您在 GitLab NuGet 存储库中拥有与nuget.org
的软件包同名的软件包, nuget.org
必须指定源名称,否则将安装错误的软件包.
使用以下命令安装最新版本的软件包:
nuget install <package_id> -OutputDirectory <output_directory> \
-Version <package_version> \
-Source <source_name>
Where:
<package_id>
是软件包 ID.<output_directory>
是将在其中安装软件包的输出目录.<package_version>
(可选)是软件包版本.<source_name>
(可选)是源名称.
Install a package with .NET CLI
Warning: If you have a package in the GitLab NuGet Repository with the same name as a package at a different source, you should verify the order in which dotnet
checks sources during install. This is defined in the nuget.config
file.
使用以下命令安装最新版本的软件包:
dotnet add package <package_id> \
-v <package_version>
Where:
<package_id>
是软件包 ID.<package_version>
(可选)是软件包版本.