每次构建后自动增加appx包版本

时间:2014-10-18 22:32:25

标签: msbuild windows-store-apps continuous-integration bamboo bitbucket-server

我正在寻找一种解决方案,在CI服务器上的每次构建(特别是Atlassian Bamboo)之后自动增加包版本(不要与程序集版本混淆)。每个appx包都有一个在其清单文件(appxmanifest)中定义的版本。因此,为了增加版本,必须在提交之前编辑清单。我正在考虑实现这个的不同方法。第一个在清单中进行更改并将其推回回购。

  1. 开始制定计划(为了锁定内部版本号)
  2. 修改清单,以便将修订设置为当前内部版本号
  3. 将更改推送到SCM(特别是Atlassian Stash)。此步骤不应触发下一次构建。
  4. 继续构建程序包(调用MSBuild,UT和其他任务)
  5. 缺点

    1. 导致Bamboo上的工作流程不正确:结帐 - >推 - >构建
    2. 每个构建都会进行新的提交
    3. 另一种方法是设置post receive Stash hook,它将修改appxmanifest。

      缺点难以使内部版本号与Bamboo保持同步。

      有没有其他(更清洁和正确)的方法来实现这一目标?

1 个答案:

答案 0 :(得分:1)

前Stash开发人员(不重要),

高度建议不要检查派生/版本信息或文件。这将导致你无法解决问题(你在问题中指出了一些问题)。

我的建议 - 在构建时生成所需的信息。我对appx包装一无所知,但您可以使用可以在Bamboo构建中解析的占位符/属性(如this)吗?对于我们的构建,我们使用git hash和timestamp作为版本,在过去我也使用了job / build编号(虽然时间戳更好)。

随着更多的思考 - 如果appx版本对于开发人员在本地看是很重要的,并且很难与Git版本匹配,那么你也可以在Bamboo中的提交中附加Git标签/注释。关于这一点的好处是,从Git获取的任何人都可以轻松地看到额外的元数据,但它不会导致每次构建的额外提交。如果appx版本需要基于以前的版本,那么这使得构建脚本可以检查先前的提交并适当地修改版本。

我希望有所帮助。