Nuget是什么

Nuget 是一种 Visual Studio 扩展工具,它能够简化在 Visual Studio 项目中添加、更新和删除库(部署为程序包)的操作。(官方地址)相信大家对这个应该还是很熟悉的,没有序列化包大家第一时间就是搜索一个辅助包进行引用,大家有没有想过这些帮助包是哪里来的呢? (绝对不是天上掉下来的)

为什么使用Nuget

  • 当我们需要使用序列的时候,如果不使用Nuget中优秀的辅助包,我们就需要自己去实现一个序列话帮助类,这样我们就不能安安心心搬砖了,全部都写帮助类库了,当然我们有现成的轮子直接使用就可以了(自己费老大劲写出来的轮子可能还有bug)。
  • 当然我们也不是不能写,我之前负责过一个项目,我们的架构师写了一套核心帮助类,但是没有使用Nuget进行管理,项目的体量就非常非常大了,一个项目27个类库如果我们采用这种方式进行管理话我们项目也会变的更简单。
  • 当新项目开始的时候我们也不需要把帮助类库粘贴复制过来了,直接引用项目类库就完事了,简单的让自己飘飘乎。
  • 还有Nuget也可以搭建自己的私有帮助类,因为有些公司内部的信息不方便公开,也可以使用这种方案。

怎么使用NuGet

  1. 在NuGet官网上注册并获取API Key

    • 首先,你需要到NuGet上注册一个新的账号,然后在My Account页面,获取一个API Key。



  2. 下载NuGet.exe
  3. 设置API Key

    • 我们现在就是复制秘钥,设置到电脑中(nuget setApiKey 你的秘钥)

  • 创建清单

    • 创建一个自己的类库,然后进入项目目录中使用nuget spec命令创建一个清单.nuspec

标记
\(id\) 程序集名称。
\(title\) AssemblyTitleAttribute 中指定的程序集标题。
\(version\) 程序集的 AssemblyVersionAttribute 中指定的程序集版本。
\(author\) AssemblyCompanyAttribute 中指定的公司。
\(description\) AssemblyDescriptionAttribute 中指定的描述。
  1. 创建程序包

    我们在发布之前可以先修改类库的信息

    • 如果同一个目录中只有一个项目文件,则在运行命令时可以省略项目文件名称。 nuget pack ProjectName.csproj
    • 如果尚未编译项目,可先用 Build 标记编译项目,然后压缩它。 这将在运行 pack 命令之前编译项目。 nuget pack ProjectName.csproj -Build

         此命令将生成名为 ProjectName.{version}. nupkg 的文件,其中,{version} 的值与 AssemblyVersionAttribute 中指定的值相同。 例如,如果版本是 1.0.0,您的程序包将命名为 ProjectName.1.0.0. nupkg。
    • 为了方便开发人员安装您的程序包,请考虑使用 Symbols 标记创建带调试器符号的程序包:nuget pack ProjectName.csproj -Build -Symbols除了主程序包之外,此命令还创建符号程序包。 这使安装您的程序包的其他人在调试其应用程序时能够单步执行程序包代码。



  2. 发布程序包(需要进入.nupkg文件目录中执行)
    • 当我们完成了上述所有的操作就已经完成了所有操作, 如果你希望你的成果可以帮助其他人你就可以执行此命令上 nuget push dcl.1.0.0.1.nupkg -source nuget.org 程序上传



  3. 测试以及更新类库包
    • 在解决方案中右键解决方案—-管理解决方案的NuGet程序包—-联机,输入自己的类库包名。安装就可以了。然后是更新,更新的时候记得更改的版本号的信息,然后再重新运行一遍下面的cmd
      nuget pack *.csproj
    nuget push *.nupkg

Nuget管理自己的项目库的更多相关文章

  1. 使用 NuGet 管理项目库

    使用 NuGet 管理项目库 Phil Haack 本文转载自:http://msdn.microsoft.com/zh-cn/magazine/hh547106.aspx 无论多么努力,Micros ...

  2. 【VS开发】使用 NuGet 管理项目库

    NuGet 使用 NuGet 管理项目库 Phil Haack 无论多么努力,Microsoft 也没办法提供开发人员所需要的每一个库. 虽然 Microsoft 在全球的员工人数接近 90,000, ...

  3. 使用NuGet管理项目类库引用

    NuGet 是微软开发平台(包括.NET平台)的一个包管理器,这里只介绍和.NET相关的NuGet Visual Studio扩展客户端, 在VS2010 ,VS2012 ,VS2013中默认集成了N ...

  4. 转一篇dudu大人的文章:程序员,用NuGet管理好你的包包

    每个女人都有很多包包:其实男人也有,但只有会写程序的男人才有 —— 代码世界中的大“包”小“包”.这些大包小包,有花钱买的,有从开源市场淘的,也有自己或同事亲手制作的. 包包有个特点:容易坏,更新快, ...

  5. Nuget~管理自己的包包~丢了的包包快速恢复

    之前写过一篇Nuget~管理自己的包包的文章,今天来讲Nuget的另一个东西,就是找回丢失的DLL,我们在引用包包后,在当前解决方案根目录就生成一个packages的目前,里面有我们从nuget下载的 ...

  6. NuGet管理

    使用NuGet管理项目类库引用   NuGet 是微软开发平台(包括.NET平台)的一个包管理器,这里只介绍和.NET相关的NuGet Visual Studio扩展客户端, 在VS2010 ,VS2 ...

  7. 使用Nuget管理dll

    前言 nuget 已经不是什么新东西,它是vs的一个扩展工具,可以让我们在项目中添加.删除.更新引用变得更加快捷方便.现在有许多传统公司对dll的管理还是很落后的,有些甚至时通过发送dll文件,这样做 ...

  8. [Nuget]使用Nuget管理工具包

    摘要 这里演示如何使用Nuget对类库进行打包,并将类库上传到nuget上面. 步骤 1.在nuget官网注册账号,并登陆. https://www.nuget.org 2.下载Nuget.exe,并 ...

  9. VS编译时使用/去除NuGet管理库

    原文链接:VS编译时自动下载NuGet管理的库 之前一直使用NuGet来管理一些第三方的库,但是每次check in代码时候为了保证编译通过,都需要把对应的packages check in. 比较耗 ...

随机推荐

  1. Java实现的二叉堆以及堆排序详解

    一.前言 二叉堆是一个特殊的堆,其本质是一棵完全二叉树,可用数组来存储数据,如果根节点在数组的下标位置为1,那么当前节点n的左子节点为2n,有子节点在数组中的下标位置为2n+1.二叉堆类型分为最大堆( ...

  2. Hacker101 CTF 学习记录(一)

    前言 苦力挖洞,靠运气赚点小钱.看着大佬严重,高危,再看看自己手上的低危,无危害默默流下了菜鸡的泪水 思路受局限,之前听学长推荐和同事聊到hacker101,因此通过hacker101拓展下漏洞利用思 ...

  3. P4609 建筑师

    题目描述 小 Z 是一个很有名的建筑师,有一天他接到了一个很奇怪的任务:在数轴上建 n 个建筑,每个建筑的高度是 1 到 n 之间的一个整数. 小 Z 有很严重的强迫症,他不喜欢有两个建筑的高度相同. ...

  4. Lua_C_C#

    lua调用c函数 https://www.cnblogs.com/etangyushan/p/4384368.html Lua中调用C函数 https://www.cnblogs.com/sifenk ...

  5. AcWing 285. 没有上司的舞会(树形dp入门)

    Ural大学有N名职员,编号为1~N. 他们的关系就像一棵以校长为根的树,父节点就是子节点的直接上司. 每个职员有一个快乐指数,用整数 HiHi 给出,其中 1≤i≤N1≤i≤N. 现在要召开一场周年 ...

  6. js转换人民币金额 小写到大写

    u.bigNum=function(n) { var fraction = ['角', '分']; var digit = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒 ...

  7. VMware安装Centos7 -九五小庞

    VMware安装Centos7超详细过程(图文) https://blog.csdn.net/babyxue/article/details/80970526 安装centos7的时候 启动会提示Pl ...

  8. Vue事件绑定原理

    Vue事件绑定原理 Vue中通过v-on或其语法糖@指令来给元素绑定事件并且提供了事件修饰符,基本流程是进行模板编译生成AST,生成render函数后并执行得到VNode,VNode生成真实DOM节点 ...

  9. MyBatis的逆向工程、Example类

    public void testFindUserByName(){ //通过criteria构造查询条件 UserExample userExample = new UserExample(); us ...

  10. 图解冒泡排序及算法优化(Java实现)

    冒牌排序 基本思想 定义:冒泡排序的英文是bubblesort,它是一种基础的交换排序 原理:每次比较两个相邻的元素,将较大的元素交换至右端 (升序排序) 思路:相邻的元素两两比较,当一个元素大于右侧 ...