Inno Setup 实现每次jenkins自动构建时版本号自动+1

1、修改文件内容

  • iss文件:

  • client_config.xml

  • fshelp.rc

  • Language.xml

2、bat脚本内容

@echo off

echo ---------3.9.4.0--------------------------------------  
for /f "delims=" %%i in (version_new.txt) do set currenversion=%%i 
set lastnum=%currenversion:~6%
set /a value=%lastnum%+1
echo %value%
set firstnums=%currenversion:~0,6%  
set firstnums=%firstnums: =%
set newversion=%firstnums%%value%

echo lastnum=%value%
echo firstnums=%firstnums%
echo newversion=%newversion%
echo currenversion=%currenversion%

set currenversion=%currenversion: =%
set newversion=%newversion: =%

>version_old.txt set /p="%currenversion%"<nul
>version_new.txt set /p="%newversion%"<nul

echo ---------03.09.04.00--------------------------
set /a num=9
if %value% GTR %num% (	
	>version_config_new.txt set /p="03.09.04.%value%"<nul	
)  else (
	>version_config_new.txt set /p="03.09.04.0%value%"<nul	
)

echo ---------1,0,0,0--------------------------
>version_help1_new.txt set /p="3,9,4,%value%"<nul

echo ---------1, 0, 0, 1--------------------------
>version_help2_new.txt set /p="3, 9, 4, %value%"<nul

ant -f build.xml


在jenkins构建时执行到这个bat文件,之前是没有写最后一步的ant -f build.xml,则这种 “>version_new.txt set /p="%newversion%"<nul”写文件的方式在构建就会报错,

换做echo的方式写文件就可以,但是写的文件内容里有回车键,无意中发现,在最后加了“ant -f build.xml”这一行命令,竟然就通过了!

没找到具体原因!

3、build.xml脚本

<?xml version="1.0" encoding="utf-8"?>


<project basedir="." default="upd" name="fswin">
    <property environment="env"/>
    <property name="ECLIPSE_HOME" value="D:/Program Files (x86)/MyEclipse 6.5/eclipse"/>
	<!--<property name="version_old1" value="3.9.4.0"/>
	<property name="version_number1" value="3.9.4.1"/>-->		
	<property name="config_old" value="03.09.04.00"/>	
	<property name="language_old" value="3.9.4.0"/>	
	<property name="help_old1" value="1,0,0,1"/>
	<property name="help_old2" value="1, 0, 0, 1"/>
	<property name="fastmeeting_old1" value="3,9,4,0"/>
	<property name="fastmeeting_old2" value="3.9.4.0"/>
	
    <property name="iss_dir1" value="E:installHST运营版"/>
    <property name="iss_dir2" value="E:install中性版运营版"/>
	<property name="iss_dir3" value="E:install测试运营版"/>
	<property name="bat_dir"  value="E:installfing_3.9.4uildvesion"/>
	<property name="confxml_dir" value="E:sourcefs_win3.9.4clientencrypt"/>
	<property name="source_dir" value="E:sourcefs_win3.9.4client"/>
	
<taskdef name="xmltask" classname="com.oopsconsultancy.xmltask.ant.XmlTask"/>  
    <target name="upd">
        <!--修改安装包文件的版本号	-->
		<loadfile property="version_old1" srcFile="./version_old.txt"  encoding="utf-8"/>   
		<loadfile property="version_number1" srcFile="./version_new.txt" encoding="utf-8"/>	
		<echo message="${version_old1}"/>
		<echo message="${version_number1}"/>		
		<replace encoding="utf-8" file="${iss_dir1}FMDesktopYun.iss" token="${version_old1}" value="${version_number1}" />
		<replace encoding="utf-8" file="${iss_dir2}FMDesktopYun_ZX.iss"  token="${version_old1}" value="${version_number1}" />
		<replace encoding="utf-8" file="${iss_dir3}FMDesktopYun_test.iss"  token="${version_old1}" value="${version_number1}" />
		 
		<!--修改client_config_yun的版本号-->   
		<loadfile property="version_number2" srcFile="./version_config_new.txt" encoding="utf-8"/>	
		<echo message="${config_old}"/>
		<echo message="${version_number2}"/>
		<replace encoding="utf-8" file="${confxml_dir}client_config_yun.xml" token="${config_old}" value="${version_number2}" />
		<replace encoding="utf-8" file="${confxml_dir}client_config_yun_zx.xml" token="${config_old}" value="${version_number2}" />
		<replace encoding="utf-8" file="${confxml_dir}client_config_yun_test.xml" token="${config_old}" value="${version_number2}" />
		
		<!--修改FSHelp.rc的版本号-->  
		<loadfile property="version_number3" srcFile="./version_help1_new.txt" encoding="utf-8"/>	
		<loadfile property="version_number4" srcFile="./version_help2_new.txt" encoding="utf-8"/>
		<echo message="${help_old1}"/>
		<echo message="${version_number3}"/>
		<echo message="${help_old2}"/>
		<echo message="${version_number4}"/>
		<replace encoding="GBK" file="${source_dir}FSHelpFSHelp.rc" token="${help_old1}" value="${version_number3}" />
		<replace encoding="GBK" file="${source_dir}FSHelpFSHelp.rc" token="${help_old2}" value="${version_number4}" />
		
		<!--修改Language.xml的版本号-->  	
		<echo message="${language_old}"/>
		<replace encoding="utf-8" file="${confxml_dir}language_toolLanCfgLanguage.xml" token="${language_old}" value="${version_number1}" />
		<replace encoding="utf-8" file="${confxml_dir}language_toolLanCfgLanguage_zx.xml" token="${language_old}" value="${version_number1}" />	
		
		<!--修改FastMeeting.rc的版本号-->
		<replace encoding="GBK" file="${source_dir}Fting.rc" token="${fastmeeting_old1}" value="${version_number3}" />
		<replace encoding="GBK" file="${source_dir}Fting.rc" token="${fastmeeting_old2}" value="${version_number1}" />
		
   </target>      
    
</project>

  

原文地址:https://www.cnblogs.com/kissfancy/p/5829680.html