51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2094|回复: 0
打印 上一主题 下一主题

[讨论] 【过程改进】10分钟进阶Nuget

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-4-28 15:14:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
nuget是什么

  .net版的maven(java)? 如果你用过windows的chocolatey,mac的homebrew或许更容易理解他,先来回
顾下以前我们是如何处理或者碰到过的问题。

1.假如我需要合并2个项目,这2个项目是不同的作者,项目中都使用到了log4net并且版本不同,那么你需要
做一系列的改动来保证配置文件的正常工作。

2.同样在团队合作中,随便使用某个源代码管理工具,一般每个人在本地都有一个工程副本,对于第三方的(或
者公用的)程序集(例如Common,Utility等)引用或许大家会指定一个相对的路径。但是对于一次版本更新维护
成本,或许也能接受。

3.项目依赖问题,如果组件A依赖组件B,组件B关联组件C... 如果工程不是自己从头开始掌控或者直接就是修
改前任的代码,某些组件莫名丢了或者其中的一个版本升级了....

4.在.net工程中添加js或者程序集有时候所需要的安装工作可能不仅仅是copy一个js或者js,还需要关联的js,
css,jpg,config有的甚至要添加module和handler,在人为的操作和确认过程中难免会遇到一些磕磕绊绊。

所以nuget诞生了

nuget能做什么

  NuGet 是一种 Visual Studio 扩展,它能够简化在 Visual Studio 项目中添加、更新和删除库(部署为程序包)
的操作。 NuGet 程序包是打包成一个文件的文件集,扩展名是 . nupkg,使用开放打包约定 (OPC) 格式。解决
上述的问题,nuget对于版本的更新迭代,程序集的共享,管理都有着巨大的作用,如果你还在徒手添加程序
库,你,out了!

安装,引用,卸载,更新

  最简单的方法是从“Tools”(工具)|“Extension Manager”(vs2013中是Extensions and Updates)菜单选
项启动 Visual Studio Extension Manager。 单击“Online Gallery”(联机库)选项卡查看可用的 Visual Studio 扩
展名



  需要引用库的时候,只要筛选出库的名称然后点安装,会提示你选择需要安装的项目



  卸载同样简单,在已安装中选中需要卸载的库点击管理,去掉已安装项目的勾选即成。



  如果要更新到最新版本,在扩展包管理器窗口中有需要更新的一览列表



  如果要更新到指定版本,需要多一些其他的操作,首先找到nuget的官方网站http://www.nuget.org/,筛
选出要安装的库



  这里我们选择log4net



  历史版本变全在这里了。

  回到Visual Studio从tools中打开包管理器



  键入指定的版本号,注意要安装的默认项目



  至此,对nuget应该已经有了初步的了解



  下面我们来看下如何管理本地的包

  首先从tools|Options中选中包管理,除了第一个官方源以外下面都是可以自定义的。如果是团队项目还可以
指向一个共享目录。

  

  那么如何制作我们本地的包呢,首先你要准备nuget package explorer



  拖入你要管理或者共享的库

  、

  保存成.nupkg即可。另外引用nuget管理的工程在根目录下都会存在一份配置文件packages.config,里面可
以看出所引用的包的信息以及版本。



  还有一种特殊的情况就是假如你做开源项目的扩展,例如umbraco,它们有时候会引用一些更改过的无
签名或者公钥的组件。这个时候如果你从官方源中引用对应的组件会导致冲突。



  这里使用ildasm来查看下区别

  



  对于这种情况,解决办法之一就是建立一个适配器一样的中间件,也就是用本地包包含一个对应的无公
钥的库。



  最近会更新一些过程改进的内容,希望对大家有帮助。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-5-5 10:20 , Processed in 0.067430 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表