我为此使用powershell。lpath 是源代码的路径,而 buildnum 是我附加的内部版本号。这就是我实际上所做的一切。但是,它应该足以让您更改或设置任何或所有其他可用字段。我传入 lpath 并从 CC.NET 中的可用环境变量中获取内部版本号,我可以一遍又一遍地使用此脚本,只需更改我在配置文件的命令行中传入的内容。如果这实际上是您需要修改的,我还有一个可以修改 C++ 代码的资源文件。
$files = Get-ChildItem $lpath -recurse -filter *AssemblyInfo.cs -name
Foreach ($file in $files)
{
$file = $lpath + "\" + $file
$fileObject=get-item $file
$fileObject.Set_IsReadOnly($False)
$sr = new-object System.IO.StreamReader( $file, [System.Text.Encoding]::GetEncoding("utf-8") )
$content = $sr.ReadToEnd()
$sr.Close()
$content = [Regex]::Replace( $content, '(?<=\[assembly: AssemblyVersion\("[0-9].[0-9].[0-9].)[0-9]?[0-9]?[0-9]', $buildnum);
$content = [Regex]::Replace( $content, '(?<=\[assembly: AssemblyFileVersion\("[0-9].[0-9].[0-9].)[0-9]?[0-9]?[0-9]', $buildnum);
$sw = new-object System.IO.StreamWriter( $file, $false, [System.Text.Encoding]::GetEncoding("utf-8") )
$sw.Write( $content )
$sw.Close()
$fileObject.Set_IsReadOnly($True)
}