Fork me on GitHub

使用腾讯云提供的针对Nuget包管理器的缓存加速服务

继阿里巴巴开源镜像站(https://opsx.alibaba.com/)、华为云镜像站点(https://mirrors.huaweicloud.com/ )之后,腾讯也已于近日上线了类似的服务,官方名称为腾讯云软件源(Tencent Open Source Mirror Site),为国内开发者提供新的软件镜像源选择[https://mp.weixin.qq.com/s/T43MZSDiN04EdgirBif1GQ]。与国内其他同类服务相似,此开源镜像站提供了主流的Linux发行版安装镜像下载以及软件源镜像,还有几大语言程序包的仓库服务,比如Node.js的npm仓库和Python的pip仓库以及dotnet的nuget 仓库。Nuget 镜像地址是(https://mirrors.cloud.tencent.com/nuget/)。

在Visual Studio 2013、2015、2017、2019 中,使用的是Nuget包管理器对第三方组件进行管理升级的。而且 Nuget 是我们使用.NET Core的一项基础设施,.NET的软件包管理器NuGet.org是一项面向全球用户搭建的服务,不论用户身在何处,NuGet.org都应该有能力提供高性能的服务。2017 年微软针对中国访问Nuget服务的访问慢的问题进行了优化,把Blob存储备份到中国本地,并使用本地CDN服务商来处理软件包下载请求,具体参考 https://blog.nuget.org/20170907/Changes-to-NuGet-dot-org-service-management-and-performance-improvements-in-China.html。

Nuget包的API分为搜索、注册和存储三大类。其中使用最为频繁的是注册和存储两类API。 Nuget镜像包含了缓存的反向代理来加速这些API。 使用这个镜像可以在腾讯云和在应用开发可实现如下加速效果:

  1. 对于包的搜索无加速效果。搜索组件包是由额外的域名提供的。

  2. 安装、卸载、升级包等完全加速。所有包信息均按天缓存在服务器上,每天每个包第一次访问为代理访问,随后均为本地访问

  3. 包安装、升级下载文件完全加速。每个包的每个版本第一次下载微代理访问,之后所有同样版本、ID的包均为本地访问

使用方法:

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

5624069de6df7825bc826bdfd347e43

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

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

上面设置后,Nuget的配置文件里就加入了相关配置,文件位置在:C:\Users\geffzhang\AppData\Roaming\NuGet\Nuget.config ,其中geffzhang 是我的电脑账号,更换你的账号,下面是我的Nuget 配置样例:

image

上述操作我们都是在windows 10 上的,特别是做.NET Core的开发,很多同学喜欢用Mac,如果是Mac 与 Linux 中的路径是,那么路径是在 ~/.nuget/NuGet/NuGet.Config。

注:NuGet.Config 在 Windows 中路径是 %appdata%\NuGet\NuGet.Config ,在 Mac 与 Linux 中的路径是 ~/.nuget/NuGet/NuGet.Config ,如果没有 NuGet.Config 文件,可以运行 dotnet restore 命令生成。

上面的配置是全局的配置, 如果我们的项目使用的是在腾讯云上持续集成可以在项目中引入Nuget.config来完成:

image

当你使用dotnet restore 时也可以通过 –s 指定使用腾讯云镜像,我们就用这种方法来测试下腾讯云的镜像的速度,我用两个项目做了简单测试,测试结果表明为腾讯云的镜像的速度还是要比官方的要快。

posted @ 2019-07-29 07:40 张善友 阅读(...) 评论(...) 编辑 收藏