之前曾经写过这么个玩意儿:提供针对Nuget包管理器的缓存加速服务,随手写的东西,也不复杂……所以本来并没有想过要开源。后来有朋友留言说希望能开源,所以整理了下放在这里。
在Visual Studio 2013、2015中,使用的是Nuget包管理器对第三方组件进行管理升级的。这个东东就类似于NodeJS中的npm。
但是很可惜的是官方的nuget服务器是国外的服务器,由于种种众所周知以及客观原因,nuget包管理器在国内使用向来很慢。
原理介绍&使用说明
使用说明 GITHUB开源地址项目说明
项目是一个简单的Web项目,使用了一个自定义的HttpHandler捕获所有请求,并将对应路径的文件下载并缓存。
对于索引信息和API信息文件(*.JSON),在缓存并返回前,需要替换相对应的的地址(比如把api.nuget.org
替换为nugetcache.nuget.org
),因此针对部分搜索请求很难提供加速效果。
同时,缓存时会保存时间戳以及相对应的数据,会按天做时间戳校验,这里会使用ETag等信息提交源服务器做校验,因此设计上可能比官方的更好(官方并没有提交这些校验,始终会要求服务器返回当前的所有信息)。
对于包文件(*.nupkg
),不会做校验,因为Nuget官方地址不同版本号的包地址是不同的,并且Nuget目前并不允许修改或重新上传包,因此没有检测同一地址包更新的必要。
开发平台说明
项目使用VS2015开发,基于.NET 4.5平台。源码未针对低版本VS的编译做检测,如果发现语法或部分地方错误,除非必要,还请自行修正。
另外,由于运行方式的制约,不建议将此服务和其它站点混合使用。
最后,如果可以的话,建议直接使用我提供的服务即可,参见之前的博客说明。
貌似只能VS2015才能用,2013的版本是2.8.7