Я использую 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)
}