用批处理实现自动做Build

来源:互联网 发布:windows系统描述 编辑:程序博客网 时间:2024/06/06 00:48

@echo off
REM *****Get the version number*****
REM 从AssemblyInfo文件获取版本号,并通过临时文件tmp.txt存入临时变量version中待用(项目名称用XXX代替)
if exist tmp.txt del tmp.txt
findstr /c:"[assembly: AssemblyVersion" ./UI/XXXAbout/Properties/AssemblyInfo.cs >> tmp.txt
set file=tmp.txt
set /p version=<%file% >nul
if exist tmp.txt del tmp.txt

 

REM *****Reset Build Release Folder*****
REM 清空build目录(首先,需要在VS IDE中设置全部工程的输入,指定特定文件夹)

del/q/f "./build Release/*.*"

 

REM *****Make Project Building*****
REM 通过IDE提供的命令行方法生成Build(首先,设置临时环境变量)

echo Makeing Build solution...
set path=C:/Program Files/Microsoft Visual Studio 8/Common7/IDE
vcsexpress XXX.sln /build Release

 

REM *****Make Installer*****
REM 通过NSIS提供的命令行方法生成安装包(首先,设置临时环境变量)

echo Making installer
set path=c:/program files/nsis
makensis/v0 "installer/XXX installer.nsi"

 

REM *****Clean Build Release Folder***** (Remove *.*/cvs except installer)
REM 清空Build目录下除安装包以外的其他文件,通过复制到其他目录、删除、在复制回Build目录的方法
REM 同时,对安装包进行重命名,使用备好的version变量,将版本号重命名到安装包文件中,最终格式为XXX installer_1.0.0.1111.exe

copy/y/b "./build Release/XXX installer.exe" "."
ren "XXX installer.exe" "XXX installer _1.0.0.%version:~34,4%.exe"
del/q/s/f "./build Release/*.*"
rd/q/s "./build Release/cvs"
copy/y/b "./*XXX*.exe" "./build Release"

 

REM *****Deploy new build to Server to Share*****
REM 确认后,将最新build的安装包复制到server上实现项目小组内的共享和测试

echo Do you want to deploy it to file server to share?
echo
Are you really making release build now? (Y/N)
set /p input=
if %input% == y goto release
if %input% == Y goto release
goto debug
:release
del/q/f "//File Server/Development/XXX Project/*XXX*.exe"
copy/y/b "./*XXX*.exe" "//File Server/Development/XXX Project"
:debug
del/q/f "./*XXX*.exe"

 

REM *****Clean Root***** (Remove .user/.suo/#*.cs)
REM 开始清除一些不必要的文件,使准备check in的工程更干净

rd/q/s "./cvs"
del/q/s/f/a H "./*.suo"
del/q/s/f "*.user"
del/q/s/f "#*.*"

 

REM *****Clean Dependency folder***** (Remove bin/obj/cvs)
REM 开始清除一些不必要的文件,使准备check in的工程更干净

rd/q/s "./Dependency/cvs"
REM ....
REM 略...