用哈德森版本增加版本号
这是我想要实现的。 我目前使用Hudson build来为我在远程计算机上构建。 我目前必须打开我的解决方案并手动更新两个文件中的[assembly:AssemblyVersion(“1.2.6.190”)]数字,然后在通过Hudson运行构建之前将我的更改提交给SVN。 (哈德森工作没有设置运行,除非你立即建立)
我希望找到一种方法,在Hudson每次构建时自动只增加最后一个数字。
我希望它增加1(没有时间戳或类似的)。
任何想法或其他材料的链接,可能会有所帮助,将不胜感激=)
谢谢,
托比
我使用Jenkins的PowerShell插件并使用Powershell来查找所有符合模式的文件(比如AssemblyInfo。*),然后读取这些文件并使用PowerShell中的内置正则表达式功能(-match和-replace操作)查找并替换AssemblyVersion属性,将最后一个八位字节更改为当前的Jenkins内部版本号。
function assign-build-number
{
#get the build number form Jenkins env var
if(!(Test-Path env:BUILD_NUMBER))
{
return
}
#set the line pattern for matching
$linePattern = 'AssemblyFileVersion'
#get all assemlby info files
$assemblyInfos = gci -path $env:ENLISTROOT -include AssemblyInfo.cs -Recurse
#foreach one, read it, find the line, replace the value and write out to temp
$assemblyInfos | foreach-object -process {
$file = $_
write-host -ForegroundColor Green "- Updating build number in $file"
if(test-path "$file.tmp" -PathType Leaf)
{
remove-item "$file.tmp"
}
get-content $file | foreach-object -process {
$line = $_
if($line -match $linePattern)
{
#replace the last digit in the file version to match this build number.
$line = $line -replace 'd"', "$env:BUILD_NUMBER`""
}
$line | add-content "$file.tmp"
}
#replace the old file with the new one
remove-item $file
rename-item "$file.tmp" $file -Force -Confirm:$false
}
}
由于我只得到了没有考虑到使用哈德森的要求的答案,我以为我会发布一个链接到一个好的解决方案。
在这里查看“nos”的答案 - 如何通过我们的CI平台(Hudson)自动增加C#程序集版本?
这不是公认的答案,但它应该是完美的。
链接地址: http://www.djcxy.com/p/50671.html上一篇: Incrementing build number with Hudson build
下一篇: Best practices/guidance for maintaining assembly version numbers