我们有一个使用WiX安装程序和MSBuild构建脚本的C#解决方案。我们正在从SVN迁移到Git。
作为版本号的第四部分,我们希望有一个随着每个构建递增的内容。到目前为止,我们使用了SVN修订号。MSBuild脚本定义了一个ProductVersion属性,其中将SVN修订号作为构建版本的四个数字中的最后一个。然而,我们不能再使用它了,因为我们将不再使用SVN。
我一直在寻找SVN修订号的替代方案,但我找不出该用什么。
Jenkins提供了一个可以使用的构建编号,但我不想把我们的版本控制系统与Jenkins绑定在一起。
Jenkins还提供了一个时间戳,但它不符合Microsoft的版本号限制:它是字母数字混合的且相当长,而版本中的第四个数字应该是介于0和65535之间的整数。
我们可以将AssemblyVersion设置为1.0.*,并让.NET填充其余部分。这适用于我们的程序集,但我找不到一种方法来将其注入到WiX中。我们可以在编译完一个程序集后从其中获取它,但我们的MSBuild脚本使用任务一次性构建整个解决方案,所以我们陷入了一个进退两难的境地,我们需要运行以便它可以编译一个程序集,以便我们可以从中获取生成的版本号,但是为了运行,我们首先需要有一个已编译的程序集,以便我们可以从中获取生成的版本号。
我可以在MSBuild文件中添加一个单独的Target来编译一些东西(任何东西),并从中获取版本号,然后执行实际的任务调用。但那感觉不对。
再次强调,我并不真正关心这个数字是什么,只要它随着每个构建递增即可。基于时间戳的内容也可以。您有什么想法?
作为版本号的第四部分,我们希望有一个随着每个构建递增的内容。到目前为止,我们使用了SVN修订号。MSBuild脚本定义了一个ProductVersion属性,其中将SVN修订号作为构建版本的四个数字中的最后一个。然而,我们不能再使用它了,因为我们将不再使用SVN。
我一直在寻找SVN修订号的替代方案,但我找不出该用什么。
Jenkins提供了一个可以使用的构建编号,但我不想把我们的版本控制系统与Jenkins绑定在一起。
Jenkins还提供了一个时间戳,但它不符合Microsoft的版本号限制:它是字母数字混合的且相当长,而版本中的第四个数字应该是介于0和65535之间的整数。
我们可以将AssemblyVersion设置为1.0.*,并让.NET填充其余部分。这适用于我们的程序集,但我找不到一种方法来将其注入到WiX中。我们可以在编译完一个程序集后从其中获取它,但我们的MSBuild脚本使用任务一次性构建整个解决方案,所以我们陷入了一个进退两难的境地,我们需要运行以便它可以编译一个程序集,以便我们可以从中获取生成的版本号,但是为了运行,我们首先需要有一个已编译的程序集,以便我们可以从中获取生成的版本号。
我可以在MSBuild文件中添加一个单独的Target来编译一些东西(任何东西),并从中获取版本号,然后执行实际的任务调用。但那感觉不对。
再次强调,我并不真正关心这个数字是什么,只要它随着每个构建递增即可。基于时间戳的内容也可以。您有什么想法?