用ProGet搭建本地私有NuGet仓库

释放双眼,带上耳机,听听看~!

搭建ProGet

下载

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

安装

点击ProGetInstaller.exe,出现如下安装界面
用ProGet搭建本地私有NuGet仓库

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仓库
添加成功后,SQL Server选项会显示选中刚刚新加的服务器IP地址
用ProGet搭建本地私有NuGet仓库
点击安装后,输入名称和邮件地址来获取到免费的key。
用ProGet搭建本地私有NuGet仓库

安装成功后的IndeoHub界面
用ProGet搭建本地私有NuGet仓库

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

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

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

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

配置

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

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

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

再次进入ZeroGet的Feed界面,结果如下,我们把NuGet官网的包信息也同步过来了!
用ProGet搭建本地私有NuGet仓库

上传程序集

下载NuGet

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

设置环境变量

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

项目打包

修改项目程序集信息

这里介绍的是简单的通过修改项目的AssemblyInfo.cs文件来修改程序集的发布信息。
用ProGet搭建本地私有NuGet仓库
打开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仓库

上传到本地仓库

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

NuGet.exe push <package path> [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仓库
浏览器访问本地ProGet,显示信息如下
用ProGet搭建本地私有NuGet仓库
进入ZeroGet的Feed里面,我们可以看到刚刚本地新上传的程序集是置顶显示的。
用ProGet搭建本地私有NuGet仓库
点击测试的程序集,查看程序集具体信息,作者信息,描述信息,版本信息都是我们程序里面编辑的。
用ProGet搭建本地私有NuGet仓库
查看程序集依赖和项目比较,也是一样的。

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

下载使用程序集

获取包源

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

添加包源

打开VS,工具》NuGet包管理器》程序包管理器设置
用ProGet搭建本地私有NuGet仓库
点击NuGet包管理器下的程序包源,点击新增按钮,新增ZeroGet本地包源,如下图。
用ProGet搭建本地私有NuGet仓库

使用包源

在项目下,右击打开“管理NuGet程序包”,将程序抱怨切换到ZeroGet,如下图所示,我们就可以看到我们刚刚上传到本地库的程序集信息了。
用ProGet搭建本地私有NuGet仓库
点击安装后,自动安装该程序集以及它的依赖项。如下图。
用ProGet搭建本地私有NuGet仓库
用ProGet搭建本地私有NuGet仓库

验证程序引用正常

下图是Zero.Test项目代码,简单的将对象转换成字符串类型。
用ProGet搭建本地私有NuGet仓库
下图是在控制台项目,用NuGet应用程序集Zero.Test后,调用Zero.Test.Convertor.GetObjString方法的执行结果,说明Zero.Test该程序集正常工作,引用正常。
用ProGet搭建本地私有NuGet仓库

参考

给TA打赏
共{{data.count}}人
人已打赏
随笔日记

iOS多线程(GCD)

2020-11-9 4:44:44

随笔日记

【早盘内参】银保监会:近期拟推出12条对外开放新措施

2020-11-9 4:44:46

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索