云客户?
免费开始>
在MyJFrog >中升级
云有什么新>





概述

Artifactory提供完整的支持NuGet在Artifactory的知识库之上现有的支持用于高级工件管理。

Artifactory支持NuGet提供:

  • 能够从Artifactory从所有存储库类型提供NuGet包到NuGet客户端
  • 托管在Artifactory本地存储库中的NuGet包的元数据计算
  • 定义代理和缓存来访问远程NuGet存储库的能力
  • 通过虚拟存储库进行多个NuGet存储库聚合
  • 用于部署或删除与之兼容的包的apiNuGet包管理器Visual Studio扩展和NuGet命令行工具
  • 直接使用调试NuGet包作为你的符号的Artifactory
  • 支持NuGet API v3注册表。
  • 支持NuGet SemVer 2.0包支持。


元数据更新

当添加、删除、复制或移动NuGet包时,会自动计算和更新NuGet元数据。计算只在与包相关的操作完成后调用。
它是异步的,其性能取决于整个系统负载,因此有时可能需要30秒才能完成。
还可以通过选择在整个存储库上调用元数据计算重建索引包


配置

局部存储库

为了创建一个本地存储库,Artifactory将为其计算NuGet包元数据,政府模块,转到存储库|存储库|当地并选择NuGet成为包装类型。

本地存储库布局

为了支持更易于管理的存储库布局,您可以将NuGet包存储在与包结构对应的文件夹中。

Artifactory将通过执行属性搜索来查找包,因此文件夹层次结构不会影响性能。

要为存储库使用分层布局,您应该定义一个自定义布局.这样,不同的维护功能(如版本清理)将正确地与NuGet包一起工作。

页面内容

放置包以匹配存储库布局

定义一个自定义布局for您的存储库并不强制您将包放在相应的结构中,但是建议这样做,因为它允许Artifactory执行不同的维护任务,例如版本清理自动进行。

由开发人员来正确地将包部署到相应的文件夹中。从NuGet 2.5,你可以把包推到一个文件夹源,如下所示:

推送mypackage.1.0.0。nupkg -来源http://10.0.0.14:8081/artifactory/api/nuget/nuget-local/path/to/folder


下面是一个示例自定义布局命名nuget-default。

在本例中,模块标识必须有三个字段:

  • 组织=orgPath
  • 模块=模块
  • 基本修订(baseRev)在这个例子中并不是布局层次结构的一部分,但是它作为必填字段之一被包含在这里。

您可以配置此自定义布局,如上图所示,或简单地复制下面的代码片段到您的全局配置描述符

 nuget-default [orgPath]/[module]/[module].[baseRev](-[fileItegRev])。[ext] false 。* < / folderIntegrationRevisionRegExp > < fileIntegrationRevisionRegExp >。* < / fileIntegrationRevisionRegExp > < / repoLayout >

由于包布局在相应的文件夹层次结构中,Artifactory Version Cleanup工具可以正确地检测先前安装的版本。

清理旧版本

发布到本地存储库

中选择NuGet存储库时工件模块树浏览器,单击给我介绍来显示您可以用来配置Visual Studio或您的NuGet客户端来使用所选的存储库来发布或解析工件的代码片段。

远程存储库

当使用远程NuGet存储库时,您的Artifactory配置取决于远程存储库的设置方式。

不同的NuGet服务器实现可以在不同的路径上提供包资源,因此当代理远程NuGet存储库时,Artifactory中的提2022世界杯阿根廷预选赛赛程要和下载资源位置是可定制的。

如果您使用的是NuGet V2,请从以下支持的注册表列表中选择一个远程注册表:

远程注册表 下载路径 提要上下文路径

https://www.nuget.org

api / v2 /包

api / v2

https://www.powershellgallery.com

api / v2 /包

api / v2

https://proget.inedo.com

api / v2 /包

api / v2

https://nuget.devexpress.com

”“

https://community.chocolatey.org

api / v2 /包

api / v2

https://symbols.nuget.org/download/symbols

N/A

N/A

https://msdl.microsoft.com/download/symbols

N/A

N/A

要创建远程存储库,请执行以下命令n的政府模块,转到存储库|存储库|远程控制,点击新的远程存储库

下面是一些例子:

使用代理服务器

如果你通过代理服务器访问NuGet Gallery,你需要在代理的允许列表中定义以下两个url:

  1. * .nuget.org
  2. 一个z320820.vo.msecnd.net(NuGet Gallery目前的CDN域名)

虚拟存储库

Artifactory中定义的虚拟存储库聚合来自本地和远程存储库的包。

这允许您从为虚拟存储库定义的单个URL访问本地托管的NuGet包和远程代理的NuGet库。

要创建一个虚拟的NuGet存储库,我n的政府模块,在存储库|存储库|虚拟点击新的虚拟存储库而且NuGet成为它的类型。年代选项中包含的底层本地和远程NuGet存储库存储库部分


从Visual Studio访问NuGet存储库

NuGet存储库必须在路径中加上api/ NuGet前缀

当配置Visual Studio通过Artfactory访问NuGet存储库时,存储库URL必须加上前缀api / nuget在路上。

例如,如果你单独使用Artifactory或作为本地服务使用,你可以使用以下URL配置Visual Studio:

http://localhost:8081/artifactory/api / nuget /<库关键>

或者,如果您正在使用Artifactory Cloud, URL将是:

https:// < server name > .jfrog.io / artifactory /api / nuget /<库关键>

Artifactory通过REST API在以下URL中公开2022世界杯阿根廷预选赛赛程它的NuGet资源:http://localhost:8081/artifactory/api / nuget/> <库的关键。

这个URL处理所有与NuGet相关的请求(搜索、下载、上传、删除),同时支持V1和V2请求。要使用V3请求,需要配置Visual Studio with NuGet V3 API。

要配置NuGet Visual Studio扩展以使用Artifactory,请在“选项”窗口中检查相应的存储库:(您可以从工具菜单中访问选项)。

NuGet选项


使用NuGet命令行

NuGet存储库必须在路径中加上api/ NuGet前缀

当使用NuGet命令行通过Artfactory访问存储库时,存储库URL必须加上前缀api / nuget在路上。这适用于所有NuGet命令,包括nuget安装而且nuget推

例如,如果你单独使用Artifactory或作为本地服务,你可以使用下面的URL访问你的NuGet存储库:

http://localhost:8081/artifactory/api / nuget /<库关键>

或者,如果您正在使用Artifactory Cloud, URL将是:

https:// < server name > .jfrog.io / artifactory /api / nuget /<库关键>

如果命令中有子文件夹,NuGet安装/删除将无法工作(即使NuGet推送在其命令中有子文件夹)。

使用Nuget命令行工具:

  1. 下载NuGet.exe
  2. 将其放置在文件系统中众所周知的位置,例如c: \跑龙套
  3. 确保NuGet.exe就在你的路上

有关如何使用NuGet命令行工具的完整信息,请参阅NuGet Docs命令行参考

首先配置一个指向Artifactory的新源URL:

添加-Name Artifactory -Source http://localhost:8081/artifactory/api/nuget/<存储库密钥>

使用V3请求,需要配置NuGet命令行和NuGet V3 API。


NuGet身份验证

NuGet API密钥认证

NuGet工具要求敏感操作(如推送和删除)通过服务器验证apikey.您应该使用的API密钥的形式是用户名:密码,其中密码可以是明文或加密
使用NuGet命令行接口设置API密钥:

nuget setapikey admin:密码-Source Artifactory


现在可以对新添加的服务器执行操作了。例如:

nuget list -Source Artifactory nuget install log4net -Source Artifactory

NuGet访问令牌认证

您还可以使用访问令牌与服务器进行身份验证。

  1. 创建一个NuGet存储库并遵循设置页面。
  2. 而不是在URL中传递用户凭证,而是传递Artifactory访问令牌。

注意,以下也使用访问令牌:

nuget sources Add -Name -Source api / nuget ctie-mobile-snapshots >

nuget setapikey -Source


匿名访问NuGet存储库

默认情况下,Artifactory允许匿名访问NuGet存储库。它的定义是政府|安全|总体配置.详情请参阅允许匿名访问

没有匿名访问的工作

为了能够跟踪用户如何与您的存储库交互,我们建议您取消选中允许匿名访问设置如上所述。这意味着用户在使用NuGet客户端时需要输入用户名和密码。

您可以配置您的NuGet客户端需要用户名和密码使用以下命令:

-Name Artifactory -UserName admin -Password密码

您可以通过检查以下段是否出现在您的% APPDATA % \ NuGet \ NuGet。配置文件:

   
                   
                   

NuGet。配置文件也可以放在你的项目目录下,更多信息请参考NuGet配置文件

允许匿名访问

Artifactory支持NuGet存储库允许匿名访问启用。

允许匿名访问启用后,Artifactory默认不会向NuGet客户端查询身份验证参数,因此您需要指示Artifactory以不同的方式请求身份验证参数。

属性可以覆盖默认行为力身份验证新建或编辑存储库对话框中的复选框。

力身份验证

设置后,Artifactory将首先从NuGet客户端请求身份验证参数,然后再尝试访问这个存储库。


NuGet API v3注册表支持

. net和Visual Studio用户:关于微软NuGet V3 API更改的公告。

从2021年2月起nuget.org团队已经宣布了几个弃用OData查询导致阻塞第三方客户端使用的端点。

JFrog评估了其含义,并得出结论:

  • 没有版本的JFrog Artifactory,使用NuGet客户端软件,会受到这样的影响吗与第三方客户相关。
  • Artifactory默认使用NuGet V3端点。
  • 由官方NuGet客户端软件发送的查询将继续受到支持,因为官方NuGet客户端不使用这些查询,也不会受到此更改的影响。

Artifactory现在支持NuGet API v3提要,并允许您代理远程NuGet API v3存储库(例如NuGet画廊)和其他使用API v3提要设置的远程存储库。

要启用API v3,需要配置远程repo v3提要URL值。


配置NuGet CLI/ Visual Studio使用NuGet v3 API

手动添加protocolVersion = 3属性到NuGet。配置文件:

  • 对于Linux安装:该文件位于~ / config / NuGet / NuGet.Config
  • 对于Windows安装:通常在% appdata % \ NuGet \ NuGet。配置并添加/ v3 /溯源URL

<?XML版本="1.0"编码="utf-8"?>    ... ...  

NuGet SemVer 2.0包支持

Artifactory现在支持SemVer 2.0规则对于NuGet存储库(包括NuGet API v2和API v3),这意味着你现在可以使用点符号或添加元数据到版本的预发布数字,例如:MyApp.3.0.0-build.60MyApp.1.0 + git.52406

Artifactory为SemVer 2.0规则中的软件包下载请求提供服务。例如,如果某个包的最新版本符合SemVer 2.0约定,Artifactory将把它返回给客户端。带有SemVer 2.0约定的NuGet包可以从本地、远程和虚拟存储库提供,也可以用于NuGet API v2和v3提要。

带有SemVer2的NuGet包不适用于旧的NuGet客户端(4.3.0版本之前)。这是一个突破性的更改,是为了与官方的全局存储库行为保持一致。要保留旧的行为,请使用artifactory.nuget.disableSemVer2SearchFilterForLocalRepos国旗。



查看单个NuGet包信息

通过在Artifactory的树浏览器中选择NuPkg文件并选择NuPkg Info选项卡,您可以查看注释NuGet包的所有元数据:


NuGet构建信息

通过JFrog CLI运行你的NuGet构建,你可以在Artifactory中存储详尽的构建信息。

JFrog CLI从您的构建代理收集构建信息,然后将其发布到Artifactory。一旦发布,构建信息可以在下面查看构建

关于使用JFrog CLI的NuGet构建集成的更多细节,请参考构建NuGet包请参见《JFrog CLI用户指南》

观看录像

版权所有©2022 JFrog Ltd.