Я недавно сделал это сам, и именно так мне удалось это сделать.
Если вы строите проект (* .csproj), вы можете отредактировать csproj (In Notepad). Добавьте следующее в «AfterBuild» Target
Примечание: Убедитесь, что это не в закомментировать блок, который это по умолчанию
<Target Name="AfterBuild">
<GetAssemblyIdentity AssemblyFiles="bin\MyAssembly.dll">
<Output TaskParameter="Assemblies" ItemName="MyAssembly"/>
</GetAssemblyIdentity>
<Message Text="Setting build number back to TeamCity... " Importance="high"/>
<TeamCitySetBuildNumber BuildNumber="$(MyAssembly.Version)" />
</Target>
Если вы строите решение вместо , затем создайте файл MSBUILD .proj, который вы создаете из TeamCity, который вызывает сборку решения сначала, а затем устанавливает версию как BuildNumber в TeamCity.
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="SetBuildNumber" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="Build">
<Message Text="Build task called... " Importance="high"/>
<MSBuild Projects="$(teamcity_build_checkoutDir)\MySolution.sln" ToolsVersion="12.0" Properties="Configuration=Release;OutputPath=bin;"/>
</Target>
<Target Name="SetBuildNumber" DependsOnTargets="Build">
<GetAssemblyIdentity AssemblyFiles="bin\MyAssembly.dll">
<Output TaskParameter="Assemblies" ItemName="MyAssembly"/>
</GetAssemblyIdentity>
<Message Text="Setting build number back to TeamCity... " Importance="high"/>
<TeamCitySetBuildNumber BuildNumber="$(MyAssembly.Version)" />
</Target>
</Project>
С приведенным выше примером поместите это в файл, такой как MySolution.proj. Сообщайте TeamCity о запуске MSBuild Runner и создайте MySolution.proj и оставьте Targets Blank (который будет использовать значения по умолчанию, установленные в файле proj), который будет запускать целевую кнопку SetBuildNumber, которая, в свою очередь, имеет целевую зависимость от Build, поэтому Build будет вызван первый. Это создаст ваше решение, указанное в целевом «Build» с указанными параметрами, затем оно будет проходить через «SetBuildNumber», которое примет AssemblyVersion указанной DLL и отправит сообщение TeamCity для обновления BuildNumber (% build. число%).
Надеюсь, это поможет.