我们希望在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)]
基本上我们想要实现的目标:
我们的问题是,我们无法访问客户的TeamCity安装来更改那里的版本,因此我们依赖于双方都有效的解决方案(如该类)。
答案 0 :(得分:0)
您可以使用构建步骤中的Built Script Interaction自定义输出。
你需要欺骗你的构建,我认为是MSBuild,将它输出到标准控制台。
基本上,您需要输出的内容应如下所示:
XYZ
其中echo ##teamcity[buildNumber '1.2.0.%env.BUILD_NUMBER%-Beta']
是您要输出的内部版本号。
这是我创建的一个简单的测试批处理文件,并附加到TeamCity构建配置:
{{1}}
运行两次之后我得到了这个: