更新记录

本文迁移自Panda666原博客,原发布时间:2021年5月13日。

在Visual Studio中直接使用GUI的方式操作NuGet包非常的方便。如果喜欢命令行,也可以使用包管理控制台或者.NET CLI。对于线上的包,直接可以搜索进行安装。但有时候我们的一些私有的包存储在本地局域网内。想使用这些包也非常方便,具体操作如下。

过程中使用到的工具:

  • Visual Studio 2019 Enterprise
  • Visual Studio Code
  • PowerShell,不是必须的。可以用CMD代替。

关于NuGet

如果您已经安装了VS 2017及以上版本的Visual Studio。默认已经自带NuGet包管理程序。

如果没安装VS。请到:https://www.nuget.org/downloads 自行进行下载安装NuGet包管理程序。

生成一个测试使用的NuGet包

注意:除了自己生成一个测试包,也可以是Nuget.org上下载的包用来做测试。

打开命令行或者PowerShell进行输入命令操作。新建一个测试使用的类库。

dotnet new classlib -n PandaTest

进入项目路径。

cd .\PandaTest\

使用Visual Studio Code打开该项目。

code .

将class1.cs类文件重命名为PandaTest.cs并修改内容,如下图所示。

打开命令行或者PowerShell进行打包类库为NuGet包。

dotnet pack --configuration Release

打包完成后会显示存放的目录。

创建本地NuGet源

在您需要的位置创建一个存放NuGet包的目录。这里存放在G:/盘下。可以直接鼠标操作在G:/盘下创建文件夹LocalPackages。也可以使用PowerShell命令行:

New-Item LocalPackages -Type Directory

将我们刚才打包的NuGet包放在该目录下做测试使用

Copy-Item "G:\PandaTest\bin\Release\PandaTest.1.0.0.nupkg" "G:\LocalPackages\"

配置 .NET CLI 的NuGet源

在命令行输入下列命令,将我们自定义的NuGet源加入到.NET CLI

dotnet nuget add source "G:\LocalPackages\"

测试使用本地NuGet包

切换到G:/盘根目录,新建Console项目。

cd G:/
dotnet new console -n "ConsoleProject"

切换到ConsoleProject项目目录。

cd ConsoleProject

引入我们刚才打包的NuGet包。

dotnet add package PandaTest

此时,CLI会自动去加载包,如下图所示。

流程也在图中体现出来了的,NuGet先访问https://api.nuget.org官方源头,没有查找到该包,然后再访问本地的我们自定义的源,最后安装成功。

安装好包后,使用Visual Studio Code打开该项目,并使用我们的引入的包。

code .

修改代码,如下图所示。

进行运行项目。

dotnet run

输出显示运行成功,至此我们已经完成了整个流程。

在Visual Studio中使用

我们刚才尝试了在CLI界面中操作NuGet包。在Visual Studio中使用也非常方便,添加我们定义的NuGet源即可。

具体操作流程:点击[工具] - > [nuget包管理器] -> [管理解决方案的nuget管理器] -> [程序包源]。

或者在界面中进行搜索。

然后添加源。

Visual Studio中的操作都是基于界面操作,在基本使用上有一定优势。但命令行在关键时候更加方便。总之,使用上的细节各有千秋,但底下本质都是一样。

离线环境使用NuGet的更多相关文章

  1. 在离线环境中使用.NET Core

    在离线环境中使用.NET Core 0x00 写在开始 很早开始就对.NET Core比较关注,一改微软之前给人的印象,变得轻量.开源.跨平台.最近打算试着在工作中使用.但工作是在与互联网完全隔离的网 ...

  2. 在离线环境中安装Visual Stuido 2017

    在离线环境中安装Visual Stuido 2017 0x00 写在前面的废话 因为工作上大多数都是在离线环境中进行的,进出离线环境很麻烦,所以之前很长一段时间都在使用VS2010.后来尝试换了VS2 ...

  3. 在离线环境中发布.NET Core至Windows Server 2008

    在离线环境中发布.NET Core至Windows Server 2008 0x00 写在开始 之前一篇博客中写了在离线环境中使用.NET Core,之后一边学习一边写了一些页面作为测试,现在打算发布 ...

  4. 离线环境下安装ansible,借助有网环境下pip工具

    环境 有网的机器(192.168.19.222):rhe65,python2.7.13,pip9.0.1 离线机器(192.168.19.203):rhe65,python2.6 FTP(192.16 ...

  5. Window离线环境下如何安装pyhanlp

    Hanlp在离线环境下的安装我是没有尝试过的,分享SunJW_2017的这篇文章就是关于如何在离线环境下安装hanlp的.我们可以一起来学习一下! HanLP是一款优秀的中文自然语言处理工具,可以实现 ...

  6. [转]在离线环境中发布.NET Core至Windows Server 2008

    本文转自:http://www.cnblogs.com/durow/p/5765145.html 0x00 写在开始 之前一篇博客中写了在离线环境中使用.NET Core,之后一边学习一边写了一些页面 ...

  7. Linux系统如何在离线环境或内网环境安装部署Docker服务和其他服务

    如何在离线环境或纯内网环境的Linux机器上安装部署Docker服务或其他服务.本次我们以Docker服务和Ansible服务为例. 获取指定服务的所有rpm包 保证要获取rpm包的机器能够上网. 本 ...

  8. 使用Rainbond实现离线环境软件交付

    一.离线交付的痛点 在传统行业,如政府.能源.军工.公安.工业.交通等行业,为了防止数据泄露和运行安全考虑,一般情况下网络会采取内外网隔离的策略,以防范不必要的风险,毕竟在安全防护方面,网络物理隔离是 ...

  9. 离线环境安装使用 Ansible

    之前写了一篇介绍 Ansible 的文章 ,今天回顾看来写的有些匆忙,一些具体的操作步骤都没有讲明白,不利于读者复现学习.最近又申请了一个几百台机器的环境,正好借此机会把如何在离线环境中使用 Ansi ...

随机推荐

  1. c++对c的拓展_引用的基本用法

    实质:取别名 格式:原类型&别名=原变量名: 注意:1.定义时必须初始化 2.初始化后不能够改变指向 3.不可对Null进行引用 4.可对任意类型取别名包括数组(int (&别名)[个 ...

  2. spring-Bean依赖注入-》普通数据类型

    1.创建UserDao接口以及UserDaoImpl实现类(接口代码省略) public class UserDaoImpl implements UserDao { private String u ...

  3. 厉害!我带的实习生仅用四步就整合好SpringSecurity+JWT实现登录认证!

    小二是新来的实习生,作为技术 leader,我还是很负责任的,有什么锅都想甩给他,啊,不,一不小心怎么把心里话全说出来了呢?重来! 小二是新来的实习生,作为技术 leader,我还是很负责任的,有什么 ...

  4. 如何在 Java 中实现 Dijkstra 最短路算法

    定义 最短路问题的定义为:设 \(G=(V,E)\) 为连通图,图中各边 \((v_i,v_j)\) 有权 \(l_{ij}\) (\(l_{ij}=\infty\) 表示 \(v_i,v_j\) 间 ...

  5. 将mysql主从复制由ABB模式修改为ABC模式

    最近遇到一个奇葩的需求,需要将mysql的主从复制模式由ABB修改为ABC,恰好这个mysql集群没有开启GTID,当时是在B上做了一次全量备份,然后使用该全量备份恢复C的方式进行的.做完之后在想有没 ...

  6. Java语言学习day32--8月07日

    ###07正则表达式邮箱地址验证 * A: 正则表达式邮箱地址验证 * a: 案例代码 public class RegexDemo2 { public static void main(String ...

  7. Java语言学习day12--7月11日

    ###16随机点名器代码实现 * A: 随机点名器案例代码 /* 随机点名器,集合改进 (学生的姓名和年龄) 现实中有学生这个事物,使用定义类的形式,描述学生事物 属性: 姓名,年龄 姓名存储了数组, ...

  8. GAIA-IR: GraphScope 上的并行化图查询引擎

    在本文中,我们将介绍 GraphScope 图交互式查询引擎 GAIA-IR,它支持高效的 Gremlin 语言表达的交互图查询,同时高度抽象了图上的查询计算,具有高可扩展性. 背景介绍 在海量数据的 ...

  9. Java 18 新特性:简单Web服务器 jwebserver

    在今年3月下旬的时候,Java版本已经更新到了18.接下来DD计划持续做一个系列,主要更新从Java 9开始的各种更新内容,但我不全部都介绍,主要挑一些有意思的内容,以文章和视频的方式来给大家介绍和学 ...

  10. 基于知名微服务框架go-micro开发gRPC应用程序

    go-micro是golang的一个微服务框架. go-micro各个版本之间的兼容性问题一直被诟病,前几年go-micro更是分化出了两个分支: 一个延续了go-micro,只不过转到了其公司CEO ...