在 GitTemplate 中添加 BuildNumber.12.xaml

Add BuildNumber in GitTemplate.12.xaml

在相关的 TfvcTemplate 中。12.xaml 解决方案是像这样添加内部版本号:

<mtbwa:MSBuild CommandLineArguments="[String.Format(&quot;/p:SkipInvalidConfigurations=true
/p:BuildNumber={1} {0}&quot;, MSBuildArguments, BuildDetail.BuildNumber)]"

在 Git 模板中,参数略有变化,但执行相同的操作会导致以下错误

Compiler error(s) encountered processing expression 
"String.Format("/p:SkipInvalidConfigurations=true /p:BuildNumber={1} {0}", 
AdvancedBuildSettings.GetValue(Of String)("MSBuildArguments", String.Empty),  
BuildDetail.BuildNumber)".
'Microsoft.TeamFoundation.Build.Client.BuildDetail' is not accessible in 
this context because it is 'Friend'.

在此模板中公开 BuildNumber 的正确方法是什么?

我必须完成两个步骤才能完成这项工作。

  1. https://social.msdn.microsoft.com/Forums/vstudio/en-US/49f11ed9-9fa8-4c20-952a-d39ee7e71051/can-no-longer-user-builddetaildroplocation-for-copydirectory-with-tfs-2013-using-build-process?forum=tfsbuild
  2. 在您在第 1 步中修改的同一模板中,单击 "Run MSBuild" activity,查看属性并打开 "CommandLineArguments"。我将 OctoPack 用于 Octopus Deploy,所以我的论点如下:

    String.Format("/p:SkipInvalidConfigurations=true /p:BuildNumber={1} {0} 
    /p:OctoPackPackageVersion={1}", AdvancedBuildSettings.GetValue(Of
    String)("MSBuildArguments", String.Empty), BuildDetail.BuildNumber)
    

如您所见,此处指定了 BuildNumber,因此您只需删除我添加的 Octopus 属性。最后,在您的 msbuild 文件(例如 .csproj)中,您将像这样使用内部版本号 $(BuildNumber)