订阅到Rss阅读器

Powershell实践之Discuz!NT自动打包发布

缘起:以前写过一篇文章《Discuz!NT持续集成实战》介绍CruiseControl.net 来做Discuz!NT项目的持续集成 。最近喜欢上了 Powershell ,由于本人向来懒惰,遂将日常工作中一些琐碎的,重复的事情用 powershell 来做了。为此某不才,读了 PowerShell 自带的 《GettingStarted》和《UserGuide》 ,基本的东西也就差不多了。在实践的过程中也曾被一些小问题卡住,在ps自带的文档中没有发现解决办法。幸而得到高人相助,一句话道破天机。(悄悄说:这位高人最近酝酿一件关于ps的作品)

 

 

废话少说,上代码:

Code dnt_publish.ps1

下面是一些功能函数 :

Code function.ps1

这里需要注意的是 dnt_publish.ps1文件中 引入 function.ps1文件的方法:文件名前用了两个点,而且两个点中间需要有空格

 

闲言碎语:不才初步体验了PowerShell 一下,感觉很不错哦,像粘合剂一样 把一些小工具 ,WMI .Net Framework 等联系起来 组成超级强大的武器。 语法么还是稍稍感觉有些怪,不太舒服,不过习惯就好了。 另外如果VS能支持 PowerShell 就好了,感觉 PowerShellPlus 用起来还是稍稍不爽。自从写了这个脚本,一切只需轻轻的点一下鼠标,真个过程就自动ok了 (过程: svn check out -> MSBuild 编译解决方案 -> 上传到FTP服务器) 。当然 结合前天代震军同学翻译的文章

http://www.cnblogs.com/daizhj/archive/2008/12/22/1352019.html  ,就可以实现整个的打包发布流程咯。

行文仓促,如有谬误 ,还请指正

编辑器不好用,上面的代码可能有问题, 提供源代码下载:http://files.cnblogs.com/zjneter/dnt_publish.rar

posted @ 2008-12-23 13:46 戏水 阅读(2307) 评论(11) 编辑 收藏

 回复 引用 查看   
#1楼 2008-12-23 15:18 二叉树      
不错,看看。。
 回复 引用   
#2楼 2008-12-23 19:49 化石[未注册用户]
最近也在研究这个东西。
不过如果编译失败了,怎么处理呢?不知道楼主对这个有没有经验?

好文,顶一下。
PS:自动打包发布,MSBuild就可以自己全部搞定,当然需要一个插件,MSBuild.Community.Tasks

@化石
你可以看下我的几篇文章
http://www.cnblogs.com/ttzhang/archive/2008/11/02/1324601.html

 回复 引用 查看   
#5楼[楼主] 2008-12-23 20:46 戏水      
其实 我在文中已经提到了 , $?变量会保存上一步操作的状态 成功返回true
通过对这个变量的判断可以判断了 。另外MSBuild可以生成log的。

 回复 引用 查看   
#6楼 2008-12-23 21:07 TerryLee      
貌似有几个可视化的工具,编写PowerShell脚本挺好的:)
 回复 引用 查看   
#7楼[楼主] 2008-12-24 08:55 戏水      
@TerryLee
听说过几个 ,貌似还有个叫PowerGUI的 不过目前为止只用过 PowerShellPlus
只可惜 试用期马上到了, 郁闷啊!!~~!

 回复 引用 查看   
#8楼 2008-12-24 09:22 代震军      
不错,呵呵
 回复 引用   
#9楼 2009-02-10 18:16 Uy[未注册用户]
这个 发布 到底怎么做?

我安装了 PowerShell 了, 也按照以上的 代码 创建好目录,一行一行的 执行了脚本,可不行啊!


希望指点一下!

 回复 引用   
#10楼 2009-02-27 11:09 imbin[未注册用户]
好一个 svn.不告诉你.com
 回复 引用   
#11楼 2009-02-27 11:11 svn[未注册用户]
猜都猜到了
https://svn.康盛.com/dnt

只是没有用户名密码而已