TeamCity从类中的常量构建数字/版本

时间:2016-02-15 10:00:20

标签: c# teamcity octopus-deploy

我们希望在Octopus Deploy中使用频道功能,因此当版本号包含“X.X.X.X-Beta”时,它应该使用Beta频道。

我们的问题是我们不知道如何在TeamCity中设置版本号,因为它只允许带有一些变量的硬编码字符串。 我们不想将它设置为TeamCity,我们希望在类中使用它。 所以我们有一个名为VersionInformation.cs的类,其中包含以下内容:

public static class VersionInformation
{
    public const string ProductVersion = "1.12.0.0";
    public const string ProductStage = "Beta";
}

AssemblyInfo.cs个文件包含以下行:

[assembly: AssemblyVersion(VersionInformation.ProductVersion)]

基本上我们想要实现的目标:

  1. 从Visual Studio Online的TFS存储库中获取更改
  2. TeamCity应该读取该类并将其自己的构建版本设置为“1.12.0。{buildNumber} -Beta”
  3. TeamCity应该使用该版本创建一个Octopus版本
  4. 我们的问题是,我们无法访问客户的TeamCity安装来更改那里的版本,因此我们依赖于双方都有效的解决方案(如该类)。

1 个答案:

答案 0 :(得分:0)

您可以使用构建步骤中的Built Script Interaction自定义输出。

你需要欺骗你的构建,我认为是MSBuild,将它输出到标准控制台。

基本上,您需要输出的内容应如下所示:

XYZ

其中echo ##teamcity[buildNumber '1.2.0.%env.BUILD_NUMBER%-Beta'] 是您要输出的内部版本号。

这是我创建的一个简单的测试批处理文件,并附加到TeamCity构建配置:

{{1}}

运行两次之后我得到了这个:

TeamCity screenshot after two builds

相关问题