号外号外: 原[图享网]更名为 码友网(codedefault.com) 啦,感谢大家一路上的陪伴与支持。代码的世界里,码友网与大家一起同行!

[.NET Core].NET Core跨平台开发中如何在离线的情况下使用restore命令还原.NET Core项目的依赖包?

.NET Core 作者: Rector 29阅读 0评论 0收藏 收藏本文

郑重申明:本文未经许可,禁止任何形式转载

前言

在.NET Core跨平台开发中,正常情况下,如果我们要还原一个项目,可以直接使用命令行工具然后执行还原命令即可,如:

dotnet restore

但是在某些特殊的情况(比如:离线)下,我们直接使用dotnet restore命令不能还原.NET Core项目的依赖包。

这时,需要怎么样才可以还原.NET Core项目的依赖包呢?

本文就分享在.NET Core跨平台开发中,如何在离线的情况下使用restore命令还原.NET Core项目的依赖包的方法。

准备工作

在实现离线情况下还原.NET Core项目依赖包之前,我们还是先需要借助一台联网的计算机(这是前提)。

首先,使用命令列出本地已有的.NET Core的Nuget资源包,如下:

dotnet nuget locals all --list

以上命令会列出本地所有的.NET Core的Nuget资源包的缓存存储位置:

info : http-cache: C:\Users\xxx\AppData\Local\NuGet\v3-cache  
info : global-packages: C:\Users\xxx\.nuget\packages\         
info : temp: C:\Users\xxx\AppData\Local\Temp\NuGetScratch

注:xxx 代表当前计算机的用户名

如果执行命令后没有看到以上的Nuget资源包存储位置列表,请检查你是否正确安装.NET Core SDK。

以上命令只是列出.NET Core Nuget资源包所在的位置,但如果你的计算机还未使用过restore命令的话,这些位置是没有Nuget资源包的。
所以,我们接下来需要在联网的计算机上使用restore命令来还原这个项目。

本文以一个.NET基金会提供的.NET Core跨平台项目eShopOnWeb(一个非常经典的DDD实战案例,推荐入门或者初学DDD的朋友,一定要看!!!)为例。

eShopOnWeb项目托管地址为:eShopOnWeb

首先,将 eShopOnWeb 项目克隆到本地(联网的计算机),然后使用restore命令还原 eShopOnWeb 项目所依赖的Nuget资源包,如下:

dotnet restore

待命令执行完成后,eShopOnWeb项目的依赖包就还原完成了。这时,我们再打开本地Nuget资源包缓存目录(上文使用dotnet nuget locals all --list命令列出的)中的其中一个,这里选择:

C:\Users\xxx\.nuget\packages\

我们可以看到,在这个目录里包含了eShopOnWeb项目所有的依赖包的缓存。当然,如果你还还原过其他项目,Nuget缓存也会存储在这里。

现在,我们将这个目录(packages)打包(使用压缩软件压缩),并拷贝到离线的计算机上(同时,请确保离线的计算机也安装了.NET Core的SDK)。

在离线计算机上解压拷贝过来的packages文件到任意目录(但为了方便和管理,建议和.NET Core的Nuget资源包的缓存存储位置保持一致,即:C:\Users\xxx.nuget\packages)。

另外,复制一份未还原的eShopOnWeb项目到离线的计算机上。

离线还原.NET Core项目

以上准备工作完成后,我们在离线的计算机上执行restore命令,如下:

dotnet restore --source C:\Users\xxx\.nuget\packages\

这样,离线的.NET Core项目eShopOnWeb在脱机的情况下也完成了还原。

如果要生成项目eShopOnWeb,执行:

dotnet build --no-restore

如果要运行项目eShopOnWeb,执行:

dotnet run --no-restore

阅读了该文章的人还浏览了...

本文永久链接码友网 » [.NET Core].NET Core跨平台开发中如何在离线的情况下使用restore命令还原.NET Core项目的依赖包?

发布于: 2018-08-28 15:41:42
分享扩散: