[基础知识]巧用项目生成事件属性自动打包

本文介绍了一种使用预先生成事件和后期生成事件自动完成.net项目发布的方案,通过自动化脚本实现了文件清理、复制及压缩等操作。

.net项目有两个生成事件:预先生成事件和后期生成事件。如下截图:

2011-03-29_213406

在这两个事件中我们可以实现我们的一些与编译相关的需求,比如编译完成后将某些文件打包并传输到发布服务器上等。

这里要介绍的一个应用案例如下:我们发布Job的流程是将Debug或Release重命名为Bin,然后将Bin目录和App.config

压缩成zip包。

第一步:在预先生成事件中清除上次打包的文件和目录(如果有的话),包括删除文件夹$(ProjectDir)bin\bin,

删除文件$(ProjectDir)bin\app.config,删除文件$(ProjectDir)bin\Jobs.zip。代码如下:

   1: if exist "$(ProjectDir)bin\bin" rd /S /Q "$(ProjectDir)bin\bin"
   2: if exist "$(ProjectDir)bin\app.config" del /F /Q "$(ProjectDir)bin\app.config"
   3: if exist "$(ProjectDir)bin\Jobs.zip" del /Q "$(ProjectDir)bin\Jobs.zip"

第二步:在后期生成事件中创建文件夹$(ProjectDir)bin\bin,拷贝生成输出到文件夹$(ProjectDir)bin\bin,拷贝文件

$(ProjectDir)app.config到文件夹$(ProjectDir)bin\bin,如果存在7z.exe那么就将文件夹$(ProjectDir)bin\bin和文件

$(ProjectDir)bin\bin\app.config压缩成zip文件$(ProjectDir)bin\Jobs.zip。代码如下:

   1: mkdir "$(ProjectDir)bin\bin"
   2: xcopy /E /Y "$(TargetDir)*.*" "$(ProjectDir)bin\bin"
   3: copy /Y "$(ProjectDir)app.config" "$(ProjectDir)bin"
   4: if exist "%ProgramFiles%\7-Zip\7z.exe" (
   5: "%ProgramFiles%\7-Zip\7z.exe"  a -r "$(ProjectDir)bin\Jobs.zip" "$(ProjectDir)bin\bin" "$(ProjectDir)bin\app.config"
   6: )

 

输出示例:

2011-03-29_231214

搞定。哎呀,动动脑筋,总有好办法解决问题的。这样,就不用再手动重复的重命名文件夹,压缩文件了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值