本鱼拟成立工作室承接项目开发/软件定制/云设施开发运维/办公设备技术支持等,如您有相关需求,欢迎来询 | ::博客文章推荐::

提供针对Nuget包管理器的缓存加速服务

: 原创作品 木魚 15322℃ 7评论

0. 由来

在Visual Studio 2013、2015中,使用的是Nuget包管理器对第三方组件进行管理升级的。这个东东就类似于NodeJS中的npm。

但是很可惜的是官方的nuget服务器是国外的服务器,由于种种众所周知以及客观原因,nuget包管理器在国内使用向来很慢。

为了提高操作速度,所以开发了这么个玩意儿。

1. 原理及可加速内容

Nuget包的API分为搜索、注册和存储三大类。其中使用最为频繁的是注册和存储两类API。在根据实际情况分析后,我决定手动实现一个包含了缓存的反向代理来加速这些API。

由于本反向代理的工作机制以及nuget实际的操作原理,使用可实现如下加速效果:

  1. 对于包的搜索无加速效果。搜索组件包是由额外的域名提供的,因此无法提供加速。本加速仅针对 api.nuget.org 进行,目前仅支持 v3版api 以及包存储
  2. 安装、卸载、升级包等完全加速。所有包信息均按天缓存在服务器上,每天每个包第一次访问为代理访问,随后均为本地访问
  3. 包安装、升级下载文件完全加速。每个包的每个版本第一次下载微代理访问,之后所有同样版本、ID的包均为本地访问

提示

  1. 包的注册信息更新频率为按天更新,因此可能和nuget官方源不会完全同步,但更新时间差不会超过一天
  2. 当信息没有成功缓存的时候,需要代理到nuget官方去更新信息,因此速度会较慢。越是冷门的包,这种情况可能越明显
  3. 加速仅针对安装、卸载和升级,因此对于搜索组件包等情况不具备加速效果

2. 使用

在Visual Studio中点击“工具”-“选项”,左侧找到“Nuget包管理器”-“程序包源”,确认您的列表中包含有V3版的APIhttps://api.nuget.org/v3/index.json)。本加速服务仅支持V3版包源,如果没有这个记录,那么您可能无法使用加速服务,请升级您的Nuget包管理器

nuget_cache_by_ifish_dep

点击添加按钮,然后在下方输入信息:

  • 名称:FishLee.NET
  • 包地址:http://nuget.fishlee.net/v3/index.json
  • 下面的截图中地址是老地址,请忽略

 

nuget_cache_by_ifish

输入后,点击更新按钮更新,最后确认并关闭配置。

提示:建议将其它包源都取消勾选。因为就算在包管理界面没有选择为当前包源,但包管理器依然会到指定的源上获取信息,这可能会降低加速效果。

3. 提示

如果遇到包安装和搜索相关的问题,请恢复相关设置确认是否是加速的问题。如果是加速的问题,请反馈  57.gif 

有任何问题或建议,欢迎反馈: http://ask.fishlee.net/category-34

目前加速服务没有任何限制。后期可能会视使用量做部分调整(服务器资源有限)。

喜欢 (14)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(7)个小伙伴在吐槽
  1. 一样,还是用不了

    点点滴滴2016-09-30 17:33 回复
  2. 能把源码放到github上,咱们一起玩儿么?

    任跃兵2015-11-02 14:42 回复
    • 嗯……我后面抽时间整理下。

      木魚2015-11-03 23:47 回复
      • 坐等了,很感兴趣

        任跃兵2015-11-20 18:33 回复
        • 已经开源了啊。。。http://blog.fishlee.net/2015/11/08/opensource_nuget_acceleration_service/

          木魚2015-11-20 22:37 回复
  3. 好人一生平安

    那个同学2015-10-15 10:41 回复
  4. 抢个沙发

    花花2015-10-14 20:52 回复