首页 > 其他分享 >.net 学习手册之--创建自己的nuget包

.net 学习手册之--创建自己的nuget包

时间:2022-08-19 15:24:16浏览次数:89  
标签:类库 文件 -- 创建 代码 生成 nuget net

一、前言

  在开发过程中经常有这样的场景:一个工具性质的代码会经常被用到,在.net中一般的做法是将这些代码封装成一个类库,让后需要用到这个功能时直接引入类库的dll文件,然后就可以直接使用这些代码了。但是相比于人工的方式引入dll文件,通过nuget来进行包的管理将会更加优雅方便,今天就来向大家介绍如何创建自己的nuget包。

二、准备工作

  什么是nuget,引自官方的说法:

    对于 .NET(包括 .NET Core),共享代码的 Microsoft 支持的机制则为 NuGet ,其定义如何创建、托管和使用面向 .NET 的包,并针对每个角色提供适用工具。简单来说,NuGet 包是具有 .nupkg 扩展的单个 ZIP 文件,此扩展包含编译代码 (Dll)、与该代码相关的其他文件以及描述性清单(包含包版本号等信息)

  简单理解来说,它就是.net的包管理工具,可以将其类比于前端的npm,java的maven等,有了nuget来帮我们管理包,将大大方便我们的操作。

  vs2019的NuGet包管理器截图:

  首先是安装必要的工具,由于我这里是在 window 下创建 framework 的包,所以必须先下载nuget.exe,官方文档地址 -- 安装nuget客户端工具,具体环境对应的工具见下图:

三、开始创建项目

  使用vs创建一个最基础的类库项目,写一些基本的代码,我这里简单创建了一个Tools的类库,写了一个简单的calculate计算类。

  然后就是配置程序集信息,右键项目-属性,在打开的窗口中选择“应用程序”标签里的“程序集信息”按钮,填写你的程序集信息,也可以通过项目资源管理器下的Properties下的AssemblyInfo.cs文件直接修改,两者效果是一样的,如下图:

  编辑程序集信息主要是为了后面生成nuget包时使用,将会依赖程序集信息生成 nuget 包的描述信息清单文件 *.nuspec。

四、使用nuget客户端工具生成nuget包

  编辑完程序集信息后即可进入项目所在文件夹下打开命令行,使用 nuget.exe spec 命令来生成nuget包的描述信息清单文件 *.nuspec,运行完命令后会发现生成了一个默认的描述清单文件,你也可以进一步对其进行修改:

  

  然后就可以使用打包命令 nuget.exe pack 生成nuget包了:

五、总结

  至此nuget包就已经成功创建了,是不是很简单呢。后续你还可以将生成的 nuget 包发布到nuget官方网站供其它开发者下载使用,也可以推送到公司的内部私有仓库,仅供自己公司内部使用。

  下回我将教大家如何搭建自己的 nuget 私有仓库,并将生成的 nuget 包push上去供内部使用,敬请大家关注。

 

标签:类库,文件,--,创建,代码,生成,nuget,net
From: https://www.cnblogs.com/lifeisliving/p/16602083.html

相关文章

  • 浙里办微信小程序总结
    浙里办微信小程序单点登录流程1.获取浙里办跳转地址中ticket或者微信小程序中的ticketIdletticket=getQueryString("ticket",window.location.href);letsp......
  • el-input限制输入只能是数字
    方法一:通过设置type属性:type="number",这种方式一般会影响样式,不建议使用,如下图:<el-inputtype="number"v-model="aaa"></el-input>方法二:通过绑定值限制的方式:v-model......
  • 【题解】[FARIO2013]Torusia
    通信题,小A和小B迷失在\(4096\times4096\)的方阵中。方阵是循环的,比如\((0,4095)\)的右边是\((0,0)\),上面是\((4095,4095)\)。两人都不知道自己的绝对位置。每......
  • Java8 Lamba Steam操作
    (1)、创建Stream:一个数据源(如:集合、数组),获取一个流(2)、中间操作:一个中间操作链,对数据源的数据进行处理(3)、终止操作(终端操作):一个终止操作,执行中间操作链,并产生结果1、生......
  • 2022/8/19日测试 (内含Ticket Game,生日蛋糕,最优贸易,装满的油箱,道路游戏)
    TicketGame标签:思维--------------------------------------------------------------------------------------------------------Alice和Bob生活在Berland。Berland......
  • Redis - Replication
    AtthebaseofRedisreplicationthereisaleaderfollower(master-replica)replicationthatissimpletouseandconfigure.ItallowsreplicaRedisinstances......
  • (一)Shell概述
    Shell是一个命令行解释器,它接受应用程序/用户命令,然后调用操作系统内核执行命令。Shell也是一个功能强大的编程语言,易编写,容易调试,灵活性强。Shell:命令解释器,根据输入......
  • Net core中使用System.Drawing对上传的图片流进行压缩
    由于netcore中默认没有System.Drawing,可以通过nuget下载一个来代替System.Drawing.Common 直接压缩图片///<summary>///图片压缩///</summary>///<paramnam......
  • python生成随机码-转至武沛齐老师
      Python生成随机验证码,需要使用PIL模块.安装:1pip3installpillow基本使用1.创建图片123456789from PIL import I......
  • 手动安装 jdk 1.8
    得到安装包jdk-8uXXX-linux-x64.tar.gz,XXX代表小版本号,请自行在代码中修改解压至/usr/java#请先移动至安装包所在位置cd安装包所在位置tar-zxfjdk-8uXXX-linux......