AutoIt修改Assembly的版本号

2013-04-18 • 预计阅读时间 1 分钟

部门搞了自动构建.以前自己也用过ccnet之类的工具.有很多的版本号递增的规则很是方便.可惜我们不是用类似的工具,所以版本号这块就只能自己手动来修改了.不过这个修改也挺麻烦的.后来就考虑写一个小工具来完成版本号的修改.本来打算用C#做一个.但是还依赖.Net Framework.刚好最近看了一下AutoIt,就用这个练习了一下.于是就做出了这么一个东东.

#NoTrayIcon
#region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=ti.ico
#AutoIt3Wrapper_Run_Tidy=y
#endregion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <File.au3>
#include <Array.au3>

Local $path = 'D:\code\batchAgent'
Local $aVersion = '1.0.0.3'
Local $aRecords
If $CmdLine[0] >= 2 Then
	$path = $CmdLine[1]
	$aVersion = $CmdLine[2]
Else
	MsgBox(0, "Warn", '测试模式')
EndIf
Local $var = StringRight($path, 1)

If StringCompare($var, '\') <> 0 Then
	$path = $path & '\'
EndIf

Local $FileList = _FileListToArray($path, '*', 2)


For $i = 1 To $FileList[0]

	If _FileReadToArray($path & $FileList[$i] & '\Properties\AssemblyInfo.cs', $aRecords) Then
		;_ArrayDisplay($aRecords, "$aRecords")
		For $y = 1 To $aRecords[0]
			Local $result = StringRegExp($aRecords[$y], "^\[assembly\:\s\w*Version")

			If $result > 0 Then
				;用正则替换
				Local $sOutput = StringRegExpReplace($aRecords[$y], '\"([\d{1,}?\.]*)\"', '"' & $aVersion & '"')
				$aRecords[$y] = $sOutput

			EndIf
		Next
		Local $hFile = FileOpen($path & $FileList[$i] & '\Properties\AssemblyInfo.cs', 2 + 128) ; 1 = append
		For $y = 1 To $aRecords[0]
			Local $hFileWrite = FileWrite($hFile, $aRecords[$y] & @CRLF)
		Next
		FileClose($hFile)
	EndIf
Next

用上面的脚本编译一个exe,然后传递一个项目的路径和版本号就可以把Assembly的版本号改掉了.

Dev.NetAutoIt

wentao

写点代码,解决点问题。

字体大小自动随宽度和内容改变

ReportService的部署