我发现了一些使用Team构建设置环境自动增加构建号的方法,但是没有一个方法能让我满意,因为我有一个C ++ MFC应用程序,其中大部分方法都不起作用。
所以我考虑了另一种解决方案,这可能对我们的团队有用(因为它不是那么大):
我希望有这样的内部版本号:
$(major).$(minor).$(buildnumber) <!-- where buildnumber is like YYMMDDHHMM -->
我认为可以使用命令行中的预处理器变量设置$(major)
和$(minor)
(或者预构建任务,例如从文件中将它们加入并将它们放入变量中),但构建号是根据构建应该是唯一的。
这种方法适用于本地计算机上的每个开发人员以及CI环境(在我们的案例中为TFS)。
有没有办法实现这个目标?或者是否有另一个想法自动生成增加的内部版本号(不一定基于时间戳)我还没有看到?
答案 0 :(得分:2)
此要求的实施涉及两个部分:
1)构建自动生成ProductVerion属性
2)构建自动化将此属性传递给WiX构建。
对于#1,我喜欢使用TFS Versioning,但有许多解决方案可以满足您的需求。
对于#2,我把这样的代码放在.wixproj中:
<PropertyGroup>
<MSIProductVersion Condition=" '$(MSIProductVersion)' == '' ">0.1.0</MSIProductVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<DefineConstants>Debug;WiXProductVersion=$(MSIProductVersion)</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<DefineConstants>WiXProductVersion=$(MSIProductVersion)</DefineConstants>
</PropertyGroup>
在实际的wx中,我这样做:
<Product Id="*" Name="IsWiX" Language="1033" Version="$(var.WiXProductVersion)"
Manufacturer="ISWIX LLC" UpgradeCode="some upgrade code">
<Package InstallerVersion="200" Compressed="yes" />
这个概念是MSFSroductVersion中的TFS传递,它被传递到编译器并映射到Version属性。对于本地开发人员构建,MSI只获得0.1.0作为版本(这是一个很好的指标,它不是官方版本)。
答案 1 :(得分:0)
我使用找到here
的“verbuild.exe”实用程序解决了它按照该页面中的步骤操作:
verbuild <version header file> -c
VERSION_FILE
)verbuild
以更新内部版本号:
verbuild <version header file> %1 -xFP