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

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


- 首先,你需要到NuGet上注册一个新的账号,然后在My Account页面,获取一个API Key。
- 下载NuGet.exe
- 使用之前,需要先下载NuGet.exe,下载链接:http://nuget.codeplex.com/downloads/get/669083为了方便使用,设置机器的PATH环境变量,将其NuGet.exe的路径添加到PATH变量中。我放在F:\Program files下,所以路径为F:\Program files。
- 设置API Key
- 我们现在就是复制秘钥,设置到电脑中(nuget setApiKey 你的秘钥)

- 我们现在就是复制秘钥,设置到电脑中(nuget setApiKey 你的秘钥)
- 创建清单
- 创建一个自己的类库,然后进入项目目录中使用nuget spec命令创建一个清单.nuspec

- 创建一个自己的类库,然后进入项目目录中使用nuget spec命令创建一个清单.nuspec
| 标记 | 源 |
|---|---|
| \(id\) | 程序集名称。 |
| \(title\) | AssemblyTitleAttribute 中指定的程序集标题。 |
| \(version\) | 程序集的 AssemblyVersionAttribute 中指定的程序集版本。 |
| \(author\) | AssemblyCompanyAttribute 中指定的公司。 |
| \(description\) | AssemblyDescriptionAttribute 中指定的描述。 |
- 创建程序包
我们在发布之前可以先修改类库的信息
- 如果同一个目录中只有一个项目文件,则在运行命令时可以省略项目文件名称。 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除了主程序包之外,此命令还创建符号程序包。 这使安装您的程序包的其他人在调试其应用程序时能够单步执行程序包代码。


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


- 当我们完成了上述所有的操作就已经完成了所有操作, 如果你希望你的成果可以帮助其他人你就可以执行此命令上 nuget push dcl.1.0.0.1.nupkg -source nuget.org 程序上传
- 测试以及更新类库包
- 在解决方案中右键解决方案—-管理解决方案的NuGet程序包—-联机,输入自己的类库包名。安装就可以了。然后是更新,更新的时候记得更改的版本号的信息,然后再重新运行一遍下面的cmd
nuget pack *.csproj
nuget push *.nupkg
Nuget管理自己的项目库的更多相关文章
- 使用 NuGet 管理项目库
使用 NuGet 管理项目库 Phil Haack 本文转载自:http://msdn.microsoft.com/zh-cn/magazine/hh547106.aspx 无论多么努力,Micros ...
- 【VS开发】使用 NuGet 管理项目库
NuGet 使用 NuGet 管理项目库 Phil Haack 无论多么努力,Microsoft 也没办法提供开发人员所需要的每一个库. 虽然 Microsoft 在全球的员工人数接近 90,000, ...
- 使用NuGet管理项目类库引用
NuGet 是微软开发平台(包括.NET平台)的一个包管理器,这里只介绍和.NET相关的NuGet Visual Studio扩展客户端, 在VS2010 ,VS2012 ,VS2013中默认集成了N ...
- 转一篇dudu大人的文章:程序员,用NuGet管理好你的包包
每个女人都有很多包包:其实男人也有,但只有会写程序的男人才有 —— 代码世界中的大“包”小“包”.这些大包小包,有花钱买的,有从开源市场淘的,也有自己或同事亲手制作的. 包包有个特点:容易坏,更新快, ...
- Nuget~管理自己的包包~丢了的包包快速恢复
之前写过一篇Nuget~管理自己的包包的文章,今天来讲Nuget的另一个东西,就是找回丢失的DLL,我们在引用包包后,在当前解决方案根目录就生成一个packages的目前,里面有我们从nuget下载的 ...
- NuGet管理
使用NuGet管理项目类库引用 NuGet 是微软开发平台(包括.NET平台)的一个包管理器,这里只介绍和.NET相关的NuGet Visual Studio扩展客户端, 在VS2010 ,VS2 ...
- 使用Nuget管理dll
前言 nuget 已经不是什么新东西,它是vs的一个扩展工具,可以让我们在项目中添加.删除.更新引用变得更加快捷方便.现在有许多传统公司对dll的管理还是很落后的,有些甚至时通过发送dll文件,这样做 ...
- [Nuget]使用Nuget管理工具包
摘要 这里演示如何使用Nuget对类库进行打包,并将类库上传到nuget上面. 步骤 1.在nuget官网注册账号,并登陆. https://www.nuget.org 2.下载Nuget.exe,并 ...
- VS编译时使用/去除NuGet管理库
原文链接:VS编译时自动下载NuGet管理的库 之前一直使用NuGet来管理一些第三方的库,但是每次check in代码时候为了保证编译通过,都需要把对应的packages check in. 比较耗 ...
随机推荐
- Laravel Reponse 响应客户端
Laravel Response 响应客户端 本篇文章逻辑较长,只说明和响应生命周期相关的必要代码. 本文主要内容顺序为: 1.执行上文管道中的then方法指定的闭包,路由的分发 2.在路由器中(Ro ...
- 关于List的remove()方法
最近遇到一个小问题,我将其简化为下列代码,List的remove()方法在下列颜色注重的代码执行的源码也是不同的~ List<Integer> list=new ArrayList< ...
- JAVA 各种锁机制
可重入锁 可重锁是指同一个线程,外层函数获取锁后,内层函数可以自动获取到锁. java中synchronized和ReentrantLock都是可重入锁. 对于synchronized,其实现机制有j ...
- (Python)正则表达式进行匹配
import os import re pattern=re.compile(r'(\d{4})-(\d{2})-(\d{2})-b(\d{3})') // 要匹配的目录格式 for root,dir ...
- 【Oracle/Sql】清除重复而带出的性能问题
笔者使用的环境: # 类别 版本 1 操作系统 Win10 2 数据库 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bi ...
- Tomcat源码分析(类加载与类加载器)
Tomcat的挑战 Tomcat上可以部署多个项目 Tomcat的一般部署,可以通过多种方式启动一个Tomcat部署多个项目,那么Tomcat在设计时会遇到什么挑战呢? Tomcat运行时需要加载哪些 ...
- Repeater每行绑定事件代码
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { Repea ...
- SpringIOC初始化过程--详解
SpringIOC初始化过程 相信大家都知道Spring这个东西,我们经常来用他一些特性,比如说他的AOP,IOC,那今天就带大家解析下SpringIOC的加载过程. 我们来看一个例子 Annotat ...
- 最全 IT 相关网站,软件开发网站收集
前端比较流行的 UI 框架 目前前端用的比较多的框架有如下几个 Ant Design:Ant Design - 一套企业级 UI 设计语言和 React 组件库 Mint UI:https://mi ...
- Druid连接池配置全攻略
Druid是阿里开源出来的数据库连接池,性能非常好,还自带日志监控. 它的DataSource类为:com.alibaba.druid.pool.DruidDataSource. 由于使用的yaml格 ...