程序员,用NuGet管理好你的包包每个女人都有很多包包;其实男人也有,但只有会写程序的男人才有 —— 代码世界中的大“包”小“包”。这些大包小包,有花钱买的,有从开源市场淘的,也有自己或同事亲手制作的。 包包有个特点:容易坏,更新快,新品多。于是,市场上有了包包专卖店,家里有了专门放包包的衣橱。于是,女人经常逛街买包包,经常整理衣橱里的包包。而男人呢,不喜欢逛街,不喜欢整理。。。面对越来越多的包包,很多人发出感叹:做“会写程序的男人”难! 终于有人无法忍受这些大包小包的困扰,一款专门存放包包的“储包柜”横空出世 —— NuGet(http://nuget./)。读音-“New-Get”,中文翻译-“新买的(包包)”,意指不管有多少包包,想扔就扔,想买就买,有NuGet帮您打理。 会写程序员的您,被包包困扰了吗?用NuGet吧。不仅免费,而且开源 —— 可以随心所欲地改装成自己喜欢的储包柜。 使用NuGet有两种方式 一种是大家熟知的在线免费包包专卖店 —— http:///List/Packages,通过VS2010插件NuGet Package Manager可以方便地选用自己的包包。 一种是在公司或自己家里安装一个储包柜 —— 架设自己的NuGet服务器。如何架设自己的NuGet服务器,可以参考园子的两篇文章: 秀一下博客园开发团队的储包柜 2011年6月的某一天,博客园开发团队也有了自己的储包柜。 目前储包柜中主要存放的是一个很重要的包包 —— CNBlogsDomain,它包含我们的领域驱动开发(DDD)架构中的公共部分,被各个应用开发项目引用。 在没有NuGet的日子里。。。
有了NuGet,生活从此改变。。。 1. 向自家的NuGet服务器发布CNBlogsDomain包包:
2. 在项目中选用自家NuGet服务器上的包包:
3. 包包的升级 这里继续假设我们的包包名叫CNBlogsDomain。
?在使用中遇到的问题 -a. 根据配置文件repositories.config自动下载包包 问题场景: 一个人在一个项目中添加好所有包包之后,只想把NuGet相关配置文件(repositories.config与packages.config文件)放到代码版本库中,packages文件夹中的包包不放进去。另一个人签出代码后,需要重新下载这些包包,而NuGet命令只提供根据packages.config下载包包的功能(repositories.config分散在各个子项目文件夹中),并没有提供根据repositories.config下载包包的功能(repositories.config存储的就是packages.config文件的位置)。 解决方法: 写了一个批处理文件(install.bat)放在packages文件夹中,通过PowerShell脚本读取repositories.config,得到各个packages.config的位置,然后传给NuGet命令。代码如下: powershell.exe -command "[xml]$config = Get-Content repositories.config;
foreach( $repository in $config.repositories.repository){ .\NuGet install $repository.path} "
(为什么不直接写在.ps1文件中?是为了跳过PowerShell的执行限制, 不然要先执行一下Set-ExecutionPolicy RemoteSigned) -b. 不改版本号,也能更新包包 问题场景: NuGet每次更新包包,必须要发布一个不同版本号的包包。有时我们只进行了很少的改动,不想修改版本号。 临时解决方法: 继续使用上一个问题中的批处理文件,执行前删除packages文件夹中所有的包包,然后重新下载所有包包。 --进一步的解决方法需要去修改NuGet的源代码。 小结 程序员可以通过NuGet管理好自己的包包,那女人该如何管理好自己的包包呢? 程序员的天性是喜欢解决问题,不仅仅是通过代码解决问题。如果你是会写程序的男人,把你在代码世界中的智慧带回现实世界,帮助你喜欢的女人解决问题。 |
|