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. 比较耗 ...
随机推荐
- 极简 Node.js 入门 - 3.5 文件夹操作
极简 Node.js 入门系列教程:https://www.yuque.com/sunluyong/node 本文更佳阅读体验:https://www.yuque.com/sunluyong/node ...
- Zigzags CodeForces - 1400D
给出一组数: 寻找四元组的个数 (i,j,k,l)其中a[i]=a[k],并且a[j]=a[l] 刚看到这个题的时候想到了记录每个数的个数,然后求前缀和以及后缀和.先枚举i和k,当a[i]和a[k]相 ...
- POJ - 3851-Wormholes(SPFA判负环)
A friend of yours, an inventor, has built a spaceship recently and wants to explore space with it. D ...
- Construct a Matrix (矩阵快速幂+构造)
There is a set of matrixes that are constructed subject to the following constraints: 1. The matrix ...
- HDU—2021-发工资咯(水题,有点贪心的思想)
作为杭电的老师,最盼望的日子就是每月的8号了,因为这一天是发工资的日子,养家糊口就靠它了,呵呵 但是对于学校财务处的工作人员来说,这一天则是很忙碌的一天,财务处的小胡老师最近就在考虑一个问题:如果每 ...
- Vue中父组件使用子组件的emit事件,获取emit事件传出的值并添加父组件额外的参数进行操作
需求是这样的,需要输入这样一个列表的数据,可以手动添加行,每一行中客户编号跟客户姓名是自动关联的,就是说选取了客户姓名之后,客户编号是自动填充的,客户姓名是一个独立的组件,每一个下拉项都是一个大的对象 ...
- stack 数据结构
栈定义 栈:后进先出(永远从栈顶取元素)LIFO last-in-first-out 栈实现 class Stack { constructor() { this.items = [] this. ...
- linux 常用目录的作用
. / 根目录 . /bin 命令保存目录(普通用户就可以读取的命令) . /boot 启动目录,启动相关文件 . /dev 设备文件保存目录 . /etc 配置文件保 ...
- 借助Java的JDBC自制“DBMS”管理操作数据库
package jdbc; import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManager; imp ...
- mobiscroll
https://docs.mobiscroll.com/3-2-3/jquery/calendar#!options