一、前言

Nuget是ASP .NET Gallery的一员,是免费、开源的包管理工具,专注于在.Net / .Net Core应用开发过程中第三方组件库的管理,相对于传统单纯的dll引用要方便、科学得多。其中nuget.org是最著名的Nuget公开库,但是企业内部开发的(业务)公共组件不可能都往公开库上传,所以,企业内部需要一个私有的Nuget仓库来支持。虽然微软有提供的Nuget Server,但Nuget Server用起来并不那么顺手,或者说感觉有点low。因此,本文将介绍Nexus搭建的Nuget仓库,希望能给大家多一个选择。

二、下载安装Nexus

具体操作请看这里

三、Nuget仓库说明

nexus 支持yarn nexus core_nexus 支持yarn

 

 

如上图所示,其实Nexus默认已经创建好了Nuget的仓库,并且是创建了3个不同类型的仓库:nuget-group,nuget-hosted,nuget.org-proxy

nuget.org-proxy

类型是proxy,表示代理仓库。我们向它请求包(package)的时候,如果本地有,它就从本地提供,如果本地没有,它会从nuget.org下载到本地,然后给我提供这个包。

nuget-hosted

类型是hosted,表示托管仓库。我们一般把自己开发的包上传到该仓库中。

nuget-group

类型是group,表示仓库组,它结合了nuget.org-proxy和nuget-hosted,能对外提供上述两者中的包。

我们可以使用以上默认的几个仓库来保存nuget包,当然也可以自己创建先的仓库来存放,如下图:

nexus 支持yarn nexus core_上传_02

nexus 支持yarn nexus core_Server_03

 

接下来我就以将包上传到默认的nuget-hosted为例。

四、上传nuget包

1、下载nuget命令行工具

到 官网 下载最新推荐的nuget.exe,将下载的exe文件复制到C:\Windows\System32目录,这样我们就可以直接使用nuget命令行了。

nexus 支持yarn nexus core_Server_04

 

2、添加Nuget Realms

因为Nexus认证Nuget是通过Realms来认证,因此,要添加Nuget Realms。

nexus 支持yarn nexus core_上传_05

 

3、获取仓库地址以及Nuget API Key

仓库地址在设置->选择仓库->复制地址,如下图:

nexus 支持yarn nexus core_nexus 支持yarn_06

 

获取Nuget API Key

nexus 支持yarn nexus core_解决方案_07

 

输入登录密码即可,如下图:

nexus 支持yarn nexus core_上传_08

 

4、上传Nuget包

这里默认大家已经准备好nuget包了,指令模板:nuget push {dll}.nupkg {apiKey} -source {http://customsource/}

其中:

{dll}.nupkg:nuget包所在的路径,可以是相对路径也可以是绝对路径

{apiKey} 和{http://customsource/}:这两个在上一步已经交大家怎么获取了

完整上传命令参考:nuget push E:\WorkPlace\vs2017\Test\ErikDll\ErikDll\bin\Release\ErikDll.1.0.0.nupkg eb0497e8-5519-3f22-8e9f-f2eae720feb5 -source http://192.168.132.137:8081/repository/nuget-hosted/

完成后我们可以在Nexus上看到我们上传的包:

nexus 支持yarn nexus core_上传_09

 

 五、在VS中使用Nuget包

1、 打开Visual Studio的Nuget管理器,进行设置

nexus 支持yarn nexus core_解决方案_10

 

2、添加私有Nuget仓库地址

nexus 支持yarn nexus core_上传_11

 

 3、引用nuget包

解决方案右键->管理解决方案的nuget包

nexus 支持yarn nexus core_Server_12