1

这是我的 assemblyinfo.cs 版本字符串在预构建时的样子:

[assembly: AssemblyVersion("2.0.0920.10")]
[assembly: AssemblyFileVersion("2.0.0920.10")]

在构建期间,修补程序执行我想要的操作,修改文件:

[assembly: AssemblyVersion("2.0.0.1146")]
[assembly: AssemblyFileVersion("2.0.0.1146")]

但在构建过程中的某个时刻,它也会这样做:

[assembly: AssemblyVersion("2.0.0921.00")]
[assembly: AssemblyFileVersion("2.0.0921.00")]

然后当构建完成时,它又看起来像这样:

[assembly: AssemblyVersion("2.0.0920.10")]
[assembly: AssemblyFileVersion("2.0.0920.10")]

当我在 Windows 资源管理器中右键单击生成的 DLL 时,点击属性,然后转到详细信息选项卡,文件版本为“2.0.921.0”,产品版本为“2.0.921.00”。

我也得到“2.0.921.0”Assembly.GetExecutingAssembly().GetName().Version.ToString()

我的构建有 2 个构建步骤,一个是 VS 解决方案构建,另一个是命令行步骤,它只是将 DLL 复制到开发服务器。

我不想粘贴整个构建日志,因为它很大,但以下是我认为的亮点:

[14:24:54]: Step 1/2: Visual Studio 2010 Build (Visual Studio (sln)) (27s)
[14:24:54]: [Step 1/2] Update assembly versions: scanning checkout directory for AssemlyInfo files to update version
[14:24:54]: [Update assembly versions] ... for all of our assemblies

[14:24:55]: [Step 1/2] Starting: C:\TeamCity\buildAgent\plugins\dotnetPlugin\bin\JetBrains.BuildServer.MsBuildBootstrap.exe /workdir:C:\TeamCity\buildAgent\work\677e8e784c19cc26 /msbuildPath:C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
[14:24:55]: [Step 1/2] in directory: C:\TeamCity\buildAgent\work\677e8e784c19cc26
[14:25:01]: [Step 1/2] main\solution.sln: Build target: Rebuild (20s)
[14:25:01]: [main\solution.sln] ValidateSolutionConfiguration
[14:25:01]: [ValidateSolutionConfiguration] Building solution configuration "Release|Mixed Platforms".
[14:25:02]: [Step 1/2] main\SolutionDir\solution.csproj: Build target: Rebuild (7s)

...

[14:25:21]: [Step 1/2] Process exited with code 0
[14:25:21]: Step 2/2: Copy Dlls and Templates to Sohodev (Command Line) (3s)
[14:25:21]: [Step 2/2] "BuildAndCopyDllsAndTemplatesv2.cmd" is not present in directory C:\TeamCity\buildAgent\work\677e8e784c19cc26
[14:25:21]: [Step 2/2] Starting: C:\Windows\system32\cmd.exe /c BuildAndCopyDllsAndTemplatesv2.cmd
[14:25:21]: [Step 2/2] in directory: C:\Scripts\Build
[14:25:21]: [Step 2/2]         1 file(s) copied.
[14:25:21]: [Step 2/2]         1 file(s) copied.
[14:25:24]: [Step 2/2] Process exited with code 0
[14:25:24]: Reverting patched assembly versions
[14:25:24]: [Reverting patched assembly versions] Restoring ... for all of our assemblies
[14:25:24]: Publishing internal artifacts (2s)
[14:25:27]: [Publishing internal artifacts] Sending build.finish.properties file
[14:25:27]: Build finished

编辑 我们的 TeamCity 版本号:6.5.1(内部版本 17834)

编辑 我刚刚升级到 6.5.4(内部版本 18046)。行为没有变化。

4

1 回答 1

2

正如预期的那样,一切都按配置工作。

我们有一个 VersionNumber.targets 文件正在摆弄 assemblyinfo.cs 文件

<Import Project="$(MSBuildExtensionsPath)\Microsoft\AssemblyInfoTask\Microsoft.VersionNumber.targets"/>

对此发表评论使一切按预期工作。

于 2011-09-22T15:34:59.617 回答