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文件即可。

  • 相关阅读:
    征战蓝桥 —— 2015年第六届 —— C/C++A组第5题——九数组分数
    征战蓝桥 —— 2015年第六届 —— C/C++A组第5题——九数组分数
    征战蓝桥 —— 2015年第六届 —— C/C++A组第4题——格子中输出
    SSLZYC 邮票
    SSLZYC 道路阻塞
    SSLZYC 反射
    SSLZYC 家族
    秒杀系统架构分析与实战
    工厂模式
    工厂模式
  • 原文地址:https://www.cnblogs.com/sper/p/nuget-package-download.html
Copyright © 2011-2022 走看看