搭建ProGet

下载

官网下载Windows版本的Inedo Hub (https://inedo.com/proget/download
下载下来的软件名: ProGetInstaller.exe

安装

点击ProGetInstaller.exe,出现如下安装界面
用ProGet搭建本地私有NuGet仓库 - 图1
Registration 选项选择 Free ;
SQL Sever 选项选择 Specify instance,添加Connection string:
data source=192.168.195.129;user id=sa;password=yourStrong(!)Password;MultipleActiveResultSets=True;

Database Name选项默认的数据库名称是ProGet(可以新建一个空库也可以不建,安装时,如果没有对应数据库,程序会自动创建数据库)
Hosting 选项默认选择 Intergrated Web Server ,就是以服务的方式安装。
用ProGet搭建本地私有NuGet仓库 - 图2
添加成功后,SQL Server选项会显示选中刚刚新加的服务器IP地址
用ProGet搭建本地私有NuGet仓库 - 图3
点击安装后,输入名称和邮件地址来获取到免费的key。
用ProGet搭建本地私有NuGet仓库 - 图4
安装成功后的IndeoHub界面
用ProGet搭建本地私有NuGet仓库 - 图5

在Services里面可以看到有两个服务正在运行,ProGet的服务和其Web服务。
用ProGet搭建本地私有NuGet仓库 - 图6

通过Windows的任务管理器里的服务也可以看到这两个服务。
用ProGet搭建本地私有NuGet仓库 - 图7

InedoHub的Configuration界面是ProGet的相关配置信息,包括数据库链接字符串,Key,以及ProGet的网站端口号。
用ProGet搭建本地私有NuGet仓库 - 图8

本机IP为192.168.1.48,所以访问 http://192.168.1.48:8624 ,出现如下界面说明ProGet安装成功。
用ProGet搭建本地私有NuGet仓库 - 图9

配置

点击网站的头像部分,然后点击登录
用ProGet搭建本地私有NuGet仓库 - 图10
网站的管理员账号及初始密码是Admin/Admin。
用ProGet搭建本地私有NuGet仓库 - 图11
登录管理员账号后,设置Task
用ProGet搭建本地私有NuGet仓库 - 图12

给匿名用户添加 Publish Packages (发包)权限。
用ProGet搭建本地私有NuGet仓库 - 图13
添加Connectors,添加NuGet官方配置
用ProGet搭建本地私有NuGet仓库 - 图14
新增Feed,选择第三方包NuGet,Feed 名称为ZeroGet。
用ProGet搭建本地私有NuGet仓库 - 图15
新建成功

进入ZeroGet,我们会发现没有任何包,点击 Manage Feed 按钮,进入该Feed的管理界面,在Feed Connectors 项目里面,点击 add connector 按钮,选择先前新建的名叫Nuget的Connector。

再次进入ZeroGet的Feed界面,结果如下,我们把NuGet官网的包信息也同步过来了!

上传程序集

下载NuGet

NuGet官网下载地址 https://www.nuget.org/downloads
将下载好的nuget.exe放在特定的位置,例子的路径是 D:\Program Files (x86)\NuGet\nuget.exe

设置环境变量

如下图,编辑环境变量Path,新增nuget.exe的所在文件夹路径,这样cmd命令行就可以直接使用nuget命令进行相关的打包操作了

项目打包

修改项目程序集信息

这里介绍的是简单的通过修改项目的AssemblyInfo.cs文件来修改程序集的发布信息。

打开AssemblyInfo.cs文件,一般是修改如下内容就够了
[assembly: AssemblyDescription(“这是描述的信息”)]//程序集的描述
[assembly: AssemblyCompany(“Zero”)]//程序集的作者或所属公司
[assembly: AssemblyCopyright(“Copyright © 2019”)]//程序集版权信息
[assembly: AssemblyVersion(“1.0.1”)]//程序集版本
[assembly: AssemblyFileVersion(“1.0.1”)]//文件版本一般与程序集版本一致

项目打包

在打包之前,先编译生成一遍项目。
运行cmd命令行,进入到要打包的项目的.csproj文件所在目录下,运行如下命令
nuget pack -Build -Properties Configuration=Release
结果如下,成功生成Zero.Test.1.0.1.nupkg文件
用ProGet搭建本地私有NuGet仓库 - 图16

上传到本地仓库

在本地的ProGet网站的对应ZeroGet的Feed里面有添加包的 Add Package 按钮,点击后,提升如下四种添加方式,我们是通过NuGet的命令行来进行添加的,点击对应选项。
用ProGet搭建本地私有NuGet仓库 - 图17
点击通过NuGet的命令行来进行添加的对应选项后,弹出如下提示内容。
用ProGet搭建本地私有NuGet仓库 - 图18
上面命令脚本如下,[API key]的选项是可选的,可以不填。
NuGet.exe push [API key] -Source http://192.168.1.48:8624/nuget/ZeroGet/

承接上面的具体操作,在成功生成nupkg文件后,运行下面的脚本
nuget push Zero.Test.1.0.1.nupkg -Source http://192.168.1.48:8624/nuget/ZeroGet/
结果如下图:
用ProGet搭建本地私有NuGet仓库 - 图19
浏览器访问本地ProGet,显示信息如下
用ProGet搭建本地私有NuGet仓库 - 图20
进入ZeroGet的Feed里面,我们可以看到刚刚本地新上传的程序集是置顶显示的。
用ProGet搭建本地私有NuGet仓库 - 图21
点击测试的程序集,查看程序集具体信息,作者信息,描述信息,版本信息都是我们程序里面编辑的。
用ProGet搭建本地私有NuGet仓库 - 图22
查看程序集依赖和项目比较,也是一样的。

用ProGet搭建本地私有NuGet仓库 - 图23
用ProGet搭建本地私有NuGet仓库 - 图24
OK,打包并上传成功,下面就是要本地项目使用刚刚的程序集了。

下载使用程序集

获取包源

在ZeroGet的Feed页面,显示有API endpoint URL:http://192.168.1.48:8624/nuget/ZeroGet/
该路径就是ZeroGet的包源路径。
用ProGet搭建本地私有NuGet仓库 - 图25

添加包源

打开VS,工具》NuGet包管理器》程序包管理器设置

点击NuGet包管理器下的程序包源,点击新增按钮,新增ZeroGet本地包源,如下图。

使用包源

在项目下,右击打开“管理NuGet程序包”,将程序抱怨切换到ZeroGet,如下图所示,我们就可以看到我们刚刚上传到本地库的程序集信息了。

点击安装后,自动安装该程序集以及它的依赖项。如下图。

验证程序引用正常

下图是Zero.Test项目代码,简单的将对象转换成字符串类型。

下图是在控制台项目,用NuGet应用程序集Zero.Test后,调用Zero.Test.Convertor.GetObjString方法的执行结果,说明Zero.Test该程序集正常工作,引用正常。

参考