zoukankan      html  css  js  c++  java
  • 离线下载解决Nuget程序包及其依赖包的方法

    由于使用的一台电脑没有联网,但是需要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文件即可。

  • 相关阅读:
    php公立转农历
    php判断客户端浏览器类型
    php为图片添加水印
    php类精确验证身份证号码
    webpack脚手架搭建(简单版)
    《深入浅出Node.js》第4章 异步编程
    js 实现继承相关
    设计模式:观察者模式
    bind 方法实现
    用 CSS 实现字符串截断
  • 原文地址:https://www.cnblogs.com/sper/p/nuget-package-download.html
Copyright © 2011-2022 走看看