0. 由来
在Visual Studio 2013、2015中,使用的是Nuget包管理器对第三方组件进行管理升级的。这个东东就类似于NodeJS中的npm。
但是很可惜的是官方的nuget服务器是国外的服务器,由于种种众所周知以及客观原因,nuget包管理器在国内使用向来很慢。
为了提高操作速度,所以开发了这么个玩意儿。
1. 原理及可加速内容
Nuget包的API分为搜索、注册和存储三大类。其中使用最为频繁的是注册和存储两类API。在根据实际情况分析后,我决定手动实现一个包含了缓存的反向代理来加速这些API。
由于本反向代理的工作机制以及nuget实际的操作原理,使用可实现如下加速效果:
- 对于包的搜索:无加速效果。搜索组件包是由额外的域名提供的,因此无法提供加速。本加速仅针对
api.nuget.org
进行,目前仅支持 v3版api 以及包存储 - 安装、卸载、升级包等:完全加速。所有包信息均按天缓存在服务器上,每天每个包第一次访问为代理访问,随后均为本地访问
- 包安装、升级下载文件:完全加速。每个包的每个版本第一次下载微代理访问,之后所有同样版本、ID的包均为本地访问
提示:
- 包的注册信息更新频率为按天更新,因此可能和nuget官方源不会完全同步,但更新时间差不会超过一天
- 当信息没有成功缓存的时候,需要代理到nuget官方去更新信息,因此速度会较慢。越是冷门的包,这种情况可能越明显
- 加速仅针对安装、卸载和升级,因此对于搜索组件包等情况不具备加速效果
2. 使用
在Visual Studio中点击“工具”-“选项”,左侧找到“Nuget包管理器”-“程序包源”,确认您的列表中包含有V3版的API(https://api.nuget.org/v3/index.json
)。本加速服务仅支持V3版包源,如果没有这个记录,那么您可能无法使用加速服务,请升级您的Nuget包管理器。
点击添加按钮,然后在下方输入信息:
- 名称:FishLee.NET
- 包地址:http://nuget.fishlee.net/v3/index.json
- 下面的截图中地址是老地址,请忽略
输入后,点击更新按钮更新,最后确认并关闭配置。
提示:建议将其它包源都取消勾选。因为就算在包管理界面没有选择为当前包源,但包管理器依然会到指定的源上获取信息,这可能会降低加速效果。
3. 提示
如果遇到包安装和搜索相关的问题,请恢复相关设置确认是否是加速的问题。如果是加速的问题,请反馈
有任何问题或建议,欢迎反馈: http://ask.fishlee.net/category-34
目前加速服务没有任何限制。后期可能会视使用量做部分调整(服务器资源有限)。
一样,还是用不了
能把源码放到github上,咱们一起玩儿么?
嗯……我后面抽时间整理下。
坐等了,很感兴趣
已经开源了啊。。。http://blog.fishlee.net/2015/11/08/opensource_nuget_acceleration_service/
好人一生平安
抢个沙发