59

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

 5 years ago
source link: http://www.cnblogs.com/shanyou/p/10320229.html?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

在Visual Studio 2013、2015、2017中,使用的是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。华为云镜像站点 https://mirrors.huaweicloud.com/ 的Nuget镜像 包含了缓存的反向代理来加速这些API。 使用这个镜像可以在华为云和在应用开发可实现如下加速效果:

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

华为云的镜像服务需要登陆后才能看到镜像地址:

https://repo.huaweicloud.com/repository/nuget/v3/index.json

ABFJZr2.png!web

使用方法:

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

eINB3mq.png!web

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

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

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

<?xml version="1.0" encoding="utf-8"?>

<configuration>

<packageSources>

<add key="nuget.org" value=" https://api.nuget.org/v3/index.json" protocolVersion="3" />

<add key="orchardcore" value=" https://www.myget.org/F/orchardcore-preview/api/v3/index.json" />

<add key="tarsnet" value=" https://www.myget.org/f/tarsnet" />

<add key="Microsoft Visual Studio Offline Packages" value="C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\" />

<add key="huaweicloud" value=" https://repo.huaweicloud.com/repository/nuget/v3/index.json" />

</packageSources>

<packageRestore>

<add key="enabled" value="True" />

<add key="automatic" value="True" />

</packageRestore>

<bindingRedirects>

<add key="skip" value="False" />

</bindingRedirects>

<packageManagement>

<add key="format" value="0" />

<add key="disabled" value="False" />

</packageManagement>

</configuration>

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

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

<?xml version="1.0" encoding="utf-8"?>

< configuration>

<packageSources>  

<add key="huaweicloud" value=" https://repo.huaweicloud.com/repository/nuget/v3/index.json" />

</packageSources>

<packageRestore>

<add key="enabled" value="True" />

<add key="automatic" value="True" />

</packageRestore>

<bindingRedirects>

<add key="skip" value="False" />

</bindingRedirects>

<packageManagement>

<add key="format" value="0" />

<add key="disabled" value="False" />

</packageManagement>

< /configuration>

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

D:\workshop\Github\abp\modules\account>dotnet restore -s https://repo.huaweicloud.com/repository/nuget/v3/index.json

正在还原 D:\workshop\Github\abp\framework\src\Volo.Abp.AspNetCore.Mvc.Contracts\Volo.Abp.AspNetCore.Mvc.Contracts.csproj 的包...

正在还原 D:\workshop\Github\abp\framework\src\Volo.Abp.ApiVersioning.Abstractions\Volo.Abp.ApiVersioning.Abstractions.csproj 的包...

正在还原 D:\workshop\Github\abp\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Bundling\Volo.Abp.AspNetCore.Mvc.UI.Bundling.csproj 的包...

正在还原 D:\workshop\Github\abp\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Bootstrap\Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.csproj 的包...

正在还原 D:\workshop\Github\abp\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Packages\Volo.Abp.AspNetCore.Mvc.UI.Packages.csproj 的包...

正在还原 D:\workshop\Github\abp\framework\src\Volo.Abp.AspNetCore.Mvc\Volo.Abp.AspNetCore.Mvc.csproj 的包...

正在还原 D:\workshop\Github\abp\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared\Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.csproj 的包...

正在还原 D:\workshop\Github\abp\framework\src\Volo.Abp.AspNetCore.Mvc.UI\Volo.Abp.AspNetCore.Mvc.UI.csproj 的包...

D:\workshop\Github\abp\framework\src\Volo.Abp.AspNetCore.Mvc.Contracts\Volo.Abp.AspNetCore.Mvc.Contracts.csproj 的还原在 446.67 ms 内完成。

D:\workshop\Github\abp\framework\src\Volo.Abp.ApiVersioning.Abstractions\Volo.Abp.ApiVersioning.Abstractions.csproj 的还原在 446.67 ms 内完成。

正在还原 D:\workshop\Github\abp\framework\src\Volo.Abp.AspNetCore\Volo.Abp.AspNetCore.csproj 的包...

正在还原 D:\workshop\Github\abp\framework\src\Volo.Abp.Auditing\Volo.Abp.Auditing.csproj 的包...

D:\workshop\Github\abp\framework\src\Volo.Abp.Auditing\Volo.Abp.Auditing.csproj 的还原在 68.02 ms 内完成。

正在还原 D:\workshop\Github\abp\framework\src\Volo.Abp.Authorization\Volo.Abp.Authorization.csproj 的包...

D:\workshop\Github\abp\framework\src\Volo.Abp.Authorization\Volo.Abp.Authorization.csproj 的还原在 49.81 ms 内完成。

D:\workshop\Github\abp\framework\src\Volo.Abp.AspNetCore\Volo.Abp.AspNetCore.csproj 的还原在 203.87 ms 内完成。

正在还原 D:\workshop\Github\abp\framework\src\Volo.Abp.AutoMapper\Volo.Abp.AutoMapper.csproj 的包...

正在还原 D:\workshop\Github\abp\framework\src\Volo.Abp.Caching\Volo.Abp.Caching.csproj 的包...

D:\workshop\Github\abp\framework\src\Volo.Abp.Caching\Volo.Abp.Caching.csproj 的还原在 88.01 ms 内完成。

D:\workshop\Github\abp\framework\src\Volo.Abp.AutoMapper\Volo.Abp.AutoMapper.csproj 的还原在 80.04 ms 内完成。

D:\workshop\Github\abp\framework\src\Volo.Abp.AspNetCore.Mvc\Volo.Abp.AspNetCore.Mvc.csproj 的还原在 910.08 ms 内完成。

正在还原 D:\workshop\Github\abp\framework\src\Volo.Abp.Data\Volo.Abp.Data.csproj 的包...

正在还原 D:\workshop\Github\abp\framework\src\Volo.Abp.Core\Volo.Abp.Core.csproj 的包...

D:\workshop\Github\abp\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared\Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.csproj 的还原在 921.41 ms 内完成。

D:\workshop\Github\abp\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Packages\Volo.Abp.AspNetCore.Mvc.UI.Packages.csproj 的还原在 955.39 ms 内完成。

D:\workshop\Github\abp\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Bundling\Volo.Abp.AspNetCore.Mvc.UI.Bundling.csproj 的还原在 954.79 ms 内完成。

D:\workshop\Github\abp\framework\src\Volo.Abp.AspNetCore.Mvc.UI\Volo.Abp.AspNetCore.Mvc.UI.csproj 的还原在 923.08 ms 内完成。

D:\workshop\Github\abp\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Bootstrap\Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.csproj 的还原在 970.79 ms 内完成。

正在还原 D:\workshop\Github\abp\framework\src\Volo.Abp.Ddd.Application\Volo.Abp.Ddd.Application.csproj 的包...

正在还原 D:\workshop\Github\abp\framework\src\Volo.Abp.EventBus\Volo.Abp.EventBus.csproj 的包...

正在还原 D:\workshop\Github\abp\framework\src\Volo.Abp.Ddd.Domain\Volo.Abp.Ddd.Domain.csproj 的包...

正在还原 D:\workshop\Github\abp\framework\src\Volo.Abp.Guids\Volo.Abp.Guids.csproj 的包...

正在还原 D:\workshop\Github\abp\framework\src\Volo.Abp.Http.Abstractions\Volo.Abp.Http.Abstractions.csproj 的包...

D:\workshop\Github\abp\framework\src\Volo.Abp.Core\Volo.Abp.Core.csproj 的还原在 116.76 ms 内完成。

D:\workshop\Github\abp\framework\src\Volo.Abp.Data\Volo.Abp.Data.csproj 的还原在 116.35 ms 内完成。

正在还原 D:\workshop\Github\abp\framework\src\Volo.Abp.Http\Volo.Abp.Http.csproj 的包...

正在还原 D:\workshop\Github\abp\framework\src\Volo.Abp.Json\Volo.Abp.Json.csproj 的包...

D:\workshop\Github\abp\framework\src\Volo.Abp.Ddd.Application\Volo.Abp.Ddd.Application.csproj 的还原在 93.06 ms 内完成。

D:\workshop\Github\abp\framework\src\Volo.Abp.EventBus\Volo.Abp.EventBus.csproj 的还原在 92.87 ms 内完成。

正在还原 D:\workshop\Github\abp\framework\src\Volo.Abp.Localization.Abstractions\Volo.Abp.Localization.Abstractions.csproj 的包...

D:\workshop\Github\abp\framework\src\Volo.Abp.Http.Abstractions\Volo.Abp.Http.Abstractions.csproj 的还原在 85.25 ms 内完成。

正在还原 D:\workshop\Github\abp\framework\src\Volo.Abp.Localization\Volo.Abp.Localization.csproj 的包...

D:\workshop\Github\abp\framework\src\Volo.Abp.Guids\Volo.Abp.Guids.csproj 的还原在 115 ms 内完成。

D:\workshop\Github\abp\framework\src\Volo.Abp.Ddd.Domain\Volo.Abp.Ddd.Domain.csproj 的还原在 130.02 ms 内完成。

正在还原 D:\workshop\Github\abp\framework\src\Volo.Abp.MultiTenancy.Abstractions\Volo.Abp.MultiTenancy.Abstractions.csproj 的包...

D:\workshop\Github\abp\framework\src\Volo.Abp.Http\Volo.Abp.Http.csproj 的还原在 96.88 ms 内完成。

正在还原 D:\workshop\Github\abp\framework\src\Volo.Abp.Security\Volo.Abp.Security.csproj 的包...

正在还原 D:\workshop\Github\abp\framework\src\Volo.Abp.ObjectMapping\Volo.Abp.ObjectMapping.csproj 的包...

正在还原 D:\workshop\Github\abp\framework\src\Volo.Abp.Settings\Volo.Abp.Settings.csproj 的包...

正在还原 D:\workshop\Github\abp\framework\src\Volo.Abp.Serialization\Volo.Abp.Serialization.csproj 的包...

D:\workshop\Github\abp\framework\src\Volo.Abp.Json\Volo.Abp.Json.csproj 的还原在 92.34 ms 内完成。

正在还原 D:\workshop\Github\abp\framework\src\Volo.Abp.Threading\Volo.Abp.Threading.csproj 的包...

D:\workshop\Github\abp\framework\src\Volo.Abp.Localization.Abstractions\Volo.Abp.Localization.Abstractions.csproj 的还原在 90.79 ms 内完成。

D:\workshop\Github\abp\framework\src\Volo.Abp.Localization\Volo.Abp.Localization.csproj 的还原在 120.39 ms 内完成。

D:\workshop\Github\abp\framework\src\Volo.Abp.MultiTenancy.Abstractions\Volo.Abp.MultiTenancy.Abstractions.csproj 的还原在 106.73 ms 内完成。

D:\workshop\Github\abp\framework\src\Volo.Abp.Security\Volo.Abp.Security.csproj 的还原在 83.47 ms 内完成。

D:\workshop\Github\abp\framework\src\Volo.Abp.Serialization\Volo.Abp.Serialization.csproj 的还原在 81.14 ms 内完成。

D:\workshop\Github\abp\framework\src\Volo.Abp.ObjectMapping\Volo.Abp.ObjectMapping.csproj 的还原在 90.69 ms 内完成。

D:\workshop\Github\abp\framework\src\Volo.Abp.Settings\Volo.Abp.Settings.csproj 的还原在 92.39 ms 内完成。

正在还原 D:\workshop\Github\abp\framework\src\Volo.Abp.UI.Navigation\Volo.Abp.UI.Navigation.csproj 的包...

正在还原 D:\workshop\Github\abp\framework\src\Volo.Abp.Timing\Volo.Abp.Timing.csproj 的包...

正在还原 D:\workshop\Github\abp\framework\src\Volo.Abp.UI\Volo.Abp.UI.csproj 的包...

正在还原 D:\workshop\Github\abp\framework\src\Volo.Abp.Validation\Volo.Abp.Validation.csproj 的包...

D:\workshop\Github\abp\framework\src\Volo.Abp.Threading\Volo.Abp.Threading.csproj 的还原在 85.68 ms 内完成。

正在还原 D:\workshop\Github\abp\framework\src\Volo.Abp.Uow\Volo.Abp.Uow.csproj 的包...

正在还原 D:\workshop\Github\abp\framework\src\Volo.Abp.VirtualFileSystem\Volo.Abp.VirtualFileSystem.csproj 的包...

正在还原 D:\workshop\Github\abp\modules\account\src\Volo.Abp.Account.Web\Volo.Abp.Account.Web.csproj 的包...

正在还原 D:\workshop\Github\abp\modules\identityserver\src\Volo.Abp.IdentityServer.Domain.Shared\Volo.Abp.IdentityServer.Domain.Shared.csproj 的包...

D:\workshop\Github\abp\framework\src\Volo.Abp.Timing\Volo.Abp.Timing.csproj 的还原在 128.06 ms 内完成。

D:\workshop\Github\abp\framework\src\Volo.Abp.UI\Volo.Abp.UI.csproj 的还原在 128.03 ms 内完成。

D:\workshop\Github\abp\framework\src\Volo.Abp.VirtualFileSystem\Volo.Abp.VirtualFileSystem.csproj 的还原在 91.36 ms 内完成。

D:\workshop\Github\abp\framework\src\Volo.Abp.UI.Navigation\Volo.Abp.UI.Navigation.csproj 的还原在 147.08 ms 内完成。

D:\workshop\Github\abp\framework\src\Volo.Abp.Validation\Volo.Abp.Validation.csproj 的还原在 143.89 ms 内完成。

D:\workshop\Github\abp\framework\src\Volo.Abp.Uow\Volo.Abp.Uow.csproj 的还原在 111.94 ms 内完成。

D:\workshop\Github\abp\modules\identityserver\src\Volo.Abp.IdentityServer.Domain.Shared\Volo.Abp.IdentityServer.Domain.Shared.csproj 的还原在 107.53 ms 内完成。

正在还原 D:\workshop\Github\abp\modules\permission-management\src\Volo.Abp.PermissionManagement.Domain.Shared\Volo.Abp.PermissionManagement.Domain.Shared.csproj 的包...

正在还原 D:\workshop\Github\abp\modules\identity\src\Volo.Abp.Identity.Domain.Shared\Volo.Abp.Identity.Domain.Shared.csproj 的包...

正在还原 D:\workshop\Github\abp\modules\identityserver\src\Volo.Abp.IdentityServer.Domain\Volo.Abp.IdentityServer.Domain.csproj 的包...

正在还原 D:\workshop\Github\abp\modules\identity\src\Volo.Abp.Identity.AspNetCore\Volo.Abp.Identity.AspNetCore.csproj 的包...

正在还原 D:\workshop\Github\abp\modules\users\src\Volo.Abp.Users.Abstractions\Volo.Abp.Users.Abstractions.csproj 的包...

正在还原 D:\workshop\Github\abp\modules\permission-management\src\Volo.Abp.PermissionManagement.Domain\Volo.Abp.PermissionManagement.Domain.csproj 的包...

正在还原 D:\workshop\Github\abp\modules\identity\src\Volo.Abp.Identity.Domain\Volo.Abp.Identity.Domain.csproj 的包...

D:\workshop\Github\abp\modules\permission-management\src\Volo.Abp.PermissionManagement.Domain.Shared\Volo.Abp.PermissionManagement.Domain.Shared.csproj 的还原在 119.46 ms 内完成。

D:\workshop\Github\abp\modules\identity\src\Volo.Abp.Identity.Domain.Shared\Volo.Abp.Identity.Domain.Shared.csproj 的还原在 136.13 ms 内完成。

D:\workshop\Github\abp\modules\users\src\Volo.Abp.Users.Abstractions\Volo.Abp.Users.Abstractions.csproj 的还原在 119.18 ms 内完成。

D:\workshop\Github\abp\modules\permission-management\src\Volo.Abp.PermissionManagement.Domain\Volo.Abp.PermissionManagement.Domain.csproj 的还原在 207.33 ms 内完成。

D:\workshop\Github\abp\modules\identity\src\Volo.Abp.Identity.Domain\Volo.Abp.Identity.Domain.csproj 的还原在 204.05 ms 内完成。

正在还原 D:\workshop\Github\abp\modules\users\src\Volo.Abp.Users.Domain.Shared\Volo.Abp.Users.Domain.Shared.csproj 的包...

正在还原 D:\workshop\Github\abp\modules\users\src\Volo.Abp.Users.Domain\Volo.Abp.Users.Domain.csproj 的包...

D:\workshop\Github\abp\modules\identity\src\Volo.Abp.Identity.AspNetCore\Volo.Abp.Identity.AspNetCore.csproj 的还原在 249.32 ms 内完成。

D:\workshop\Github\abp\modules\users\src\Volo.Abp.Users.Domain.Shared\Volo.Abp.Users.Domain.Shared.csproj 的还原在 48.91 ms 内完成。

D:\workshop\Github\abp\modules\users\src\Volo.Abp.Users.Domain\Volo.Abp.Users.Domain.csproj 的还原在 93.33 ms 内完成。

D:\workshop\Github\abp\modules\identityserver\src\Volo.Abp.IdentityServer.Domain\Volo.Abp.IdentityServer.Domain.csproj 的还原在 437.86 ms 内完成。

D:\workshop\Github\abp\modules\account\src\Volo.Abp.Account.Web\Volo.Abp.Account.Web.csproj 的还原在 699.7 ms 内完成。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK