由于使用的一台电脑没有联网,但是需要asp.net core项目时使用到一个package,于是在nuget.org上手动下载。但是最后发现,依赖的包实在太多,手动下载太费时。于是晚上花时间研究了一下这个问题,随笔记录一下,作为个人分享。

解决这个问题,分为两个步骤:

  1. 利用nuget.exe在可联网的机器上下载需要安装的程序包。
  2. 将程序包拷贝到不联网机器,使用本地包源安装程序包。

步骤二可以参考我的这个帖子(https://www.cnblogs.com/sper/p/5697441.html)难点主要在第一步,具体方法如下:

(1)下载nuget命令行程序nuget.exe

打开https://www.nuget.org/downloads,下载Windows x86 Commandline程序。这是解决手动下载依赖包弊端的根本解决方法。

(2)下载需要使用的程序包。

运行cmd打开命令提示符窗口,执行> nuget install <package_name> -SolutionDirectory <save_path> -PackageSaveMode nupkg

根据自己的实际情况,分别替换<package_name>和<save_path>。如果需要下载指定的包版本,通过 -Version 选项来指定包的版本。

下载的程序包以及所有的依赖包将会存储在<save_path>目录的packages文件夹下。

(3)拷贝下载的nupkg数据包。

为了减少拷贝文件的大小,我们只需要.nupkg格式的文件。此时,通过一段python程序来集中这些程序包的nupkg文件。代码如下:

import os

for pkg in os.listdir("packages"):
pkgpath = os.path.join("packages", pkg)
filename = "%s.nupkg" % pkg
fullpath = os.path.join(pkgpath, filename)
if os.path.isfile(fullpath):
open(filename, "wb").write(open(fullpath, "rb").read())
else:
print("%s is not exist." % filename)
else:
print("Copy finished.")

将Python文件放在<save_path>目录下并执行,原本packages下近300M的文件,现在只需要拷贝38M的.nupkg文件即可。

离线下载解决Nuget程序包及其依赖包的方法的更多相关文章

  1. 导入spark程序的maven依赖包时,无法导入,报错Unable to import maven project: See logs for details

    问题:导入spark程序的maven依赖包时,无法导入,且报错:0:23 Unable to import maven project: See logs for details 2019-08-23 ...

  2. 查找Python包的依赖包(语句)

    Window 10家庭中文版,Python 3.6.4, 今天看完了urllib3的官文(官方文档),因为没有具体使用过,所以,仍然是一知半解,但是,突然想知道 urllib3以及前面学习过的requ ...

  3. Android Studio导入第三方jar包或依赖工程的方法

    Android Studio导入第三方jar包或依赖工程的方法   一 导入jar包的方法 1.打开自己的工程,将需要导入的jar包copy到libs文件夹下 2.在导入的jar包处单击菜单 Add ...

  4. 解决RPM包相互依赖的有效方法

    出自:http://blog.csdn.net/kai27ks/article/details/7473683 前言:常用RPM的朋友们都知道,RPM简单易用,但是它的依赖关系是最头疼的!有时候比方说 ...

  5. Golang 解决 Iris 被墙的依赖包

    使用 Golang 的 Iris web 框架时,用 go get github.com/kataras/iris 命令久久无法下载,最后还报一堆错误. 使用  GOPROXY 可解决问题,也可参考如 ...

  6. XCode帮助文档离线下载解决办法

    1.菜单栏Xcode->Preferences选择Documentation,在线下载 2.离线下载(用迅雷即可下载) 在上述在线下载列表中,点击某一列,下拉框可看见 info,可得到其网络所在 ...

  7. React框架搭建单页面应用package.json基本包和依赖包

    { //依赖包 "devDependencies": { //babel "babel-core": "6.24.1", "bab ...

  8. maven打jar包包括依赖包

    <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId& ...

  9. keeplived离线安装openssl-devel依赖包

    转载自素文宅博客:https://blog.yoodb.com/yoodb/article/detail/1434 由于公司业务并发比较高需要高可用使用LVS keeplived.在linux系统ce ...

随机推荐

  1. PDF预览之PDFObject.js总结

    get from:PDF预览之PDFObject.js总结   PDFObject.js - 将PDF嵌入到一个div内,而不是占据整个页面(要求浏览器支持显示PDF,不支持,可配置PDF.js来实现 ...

  2. 开启php的xdebug扩展及phpstorm配置xdebug,chrome调试插件组合

    一. 开启php xdebug扩展      注意:     1. 原生php各版本需对应各自的xdebug版本,可到xdebug上对应下载     2. 若用wampserver等环境,wampse ...

  3. leetcode9

    public class Solution { public bool IsPalindrome(int x) { ) { return false; } var str = x.ToString() ...

  4. MS SQL Server 无法添加、更新或删除从msx服务器上发起的作业(或其步骤或调度)

    因为 服务器 的名字 更改过 use   msdb     go         SP_CONFIGURE   'ALLOW UPDATES',1   RECONFIGURE   WITH   OVE ...

  5. WeakHashMap, NOT A CACHE

    Overview Base Map的实现 基于WeakReference的Entity实现 基于Reference和ReferenceQueue实现 它的弱引用是键,而不是值 它的key会被全自动回收 ...

  6. Workgroup&Domain(Realm)

    [工作组 Work Group] 在一个网络内,可能有成百上千台电脑,如果这些电脑不进行分组,都列在“网上邻居”内,可想而知会有多么乱.为了解决这一问题,Windows 9x/NT/2000就引用了“ ...

  7. 02-SSH综合案例:需求分析(后台)

    1.1.7  用户模块:(后台) 不用添加了,添加的话在前台就注册了. 查询所有用户: 修改用户信息: 删除用户信息: 1.1.8  一级分类:(后台) 主要都还是增删改查的操作 查询所有一级分类: ...

  8. for 续8

    ---------siwuxie095                 一个问题分析: 在 CMD 窗口输入: dir dir /b dir /b /ah dir C:\Windows dir C:\ ...

  9. C#通用数据访问类库

    说明:此篇文章是给那些和我一样仍在使用ADO.NET访问数据库的.NET开发人员写的,因为某些原因,比如还在使用.NET3.0以下版本开发.NET应用或者所使用的数据库对ORM支持不是很好,或者是对O ...

  10. 5- 如何把MyEclipse中的web项目导入到Eclipse中运行

    from: 如何把MyEclipse中的web项目导入到Eclipse中运行 2016年09月12日 20:57:51 dancheren 阅读数:35329 标签: eclipse 更多 个人分类: ...