我正在使用WIX工具为我们的项目创建安装文件。
我想拥有动态(增量)内部版本号。所以任何人都可以指导我。
请不要提供像1.0.0。*这样的解决方案,因为这会给出任何动态数字。我希望它增量像1.0.0.1,1.0.0.2,1.0.0.3,.....
答案 0 :(得分:1)
你无法在本机上使用WiX。
但是,您可以将版本定义为变量。 e.g:
<Product Id="*"
UpgradeCode="$(var.Property_UpgradeCode)"
Name="!(loc.ApplicationName)"
Language="!(loc.Property_ProductLanguage)"
Version="$(var.version)"
Manufacturer="!(loc.ManufacturerName)" >
然后您可以在命令行上传递版本号。以下是使用Nant
的示例<candle
out="${dir.obj}\"
rebuild="true"
extensions="WixUIExtension;WixNetFxExtension">
<defines>
<define name="ProcessorArchitecture" value="${release.platform}" />
<define name="SourceDir" value="${dir.source}" />
<define name="version" value="${version}" />
<define name="releasetype" value="${release.type}" />
<define name="Language" value="${language}" />
</defines>
<sources>
<include name="*.wxs" />
</sources>
</candle>
然后您只需按照与应用程序相同的方式处理版本号:)
答案 1 :(得分:1)
您可以使用msbuild community tasks版本类 例如
<PropertyGroup>
<MinorIncrement Condition=" '$(ReleaseType)' == 'Internal' ">None</MinorIncrement>
<MinorIncrement Condition=" '$(MinorIncrement)' == '' ">Increment</MinorIncrement>
<BuildIncrement>Increment</BuildIncrement>
<BuildIncrement Condition=" '$(MinorIncrement)' == 'Increment' ">Reset</BuildIncrement>
</PropertyGroup>
<Target Name="BumpVersion">
<Version VersionFile="version.txt" MinorType="$(MinorIncrement)" BuildType="$(BuildIncrement)">
<Output TaskParameter="Major" PropertyName="Major"/>
<Output TaskParameter="Minor" PropertyName="Minor"/>
<Output TaskParameter="Build" PropertyName="Build"/>
<Output TaskParameter="Revision" PropertyName="Revision"/>
</Version>
<AssemblyInfo CodeLanguage="CS" OutputFile="VersionInfo.cs" AssemblyVersion="$(Major).$(Minor).$(Build).$(Revision)" AssemblyFileVersion="$(Major).$(Minor).$(Build).$(Revision)"/>
<Message Text="Version: $(Major).$(Minor).$(Build).$(Revision)"/>
</Target>
在上面的部分中,我设置了版本类型的值。不幸的是,这些似乎只在代码中记录。
CruisControl.Net正在外部设置ReleaseType。
如果我们有一个ReleaseType为'Internal',那么未完成次要增量但是构建号被碰撞,如果不是,那么我们递增次要编号并重置构建号。
Version元素将从version.txt中读取版本,格式为“1.0.1.3”,然后对其进行操作,然后将其读入一些变量,这些变量就是输出位的内容(我认为!)用于修改装配信息的位