在wix安装程序中自动更新版本信息

Nat*_*arr 4 installer windows-installer wix version

嗨,我有一个C / C ++头文件,其产品版本信息初始化如下:

#define nMajorVersion 4
#define nMinorVersion 4
#define nPointVersion 8
#define nBuildVersion 33
#define s_szFileVersion "4.4.8.33"
#define s_szProductVersion "4.4.8.33"
Run Code Online (Sandbox Code Playgroud)

我可以通过wix 3.6安装程序自动读取此文件以更新版本号吗?目前,我已经对其进行了硬编码,这对于发布时并不理想。谢谢

wim*_*ica 5

您可以做的是创建一个ac / c ++程序,该程序会生成一个如下所示的文件Version.wxi

<?xml version="1.0" encoding="utf-8"?>
<Include>
  <?define ProductVersion.Major="4"?>
  <?define ProductVersion.Minor="4"?>
  <?define ProductVersion.Revision="8"?>
  <?define ProductVersion.Build="33"?>
  <?define ProductVersion="4.4.8.33"?>
  ....
</Include>
Run Code Online (Sandbox Code Playgroud)

然后,您可以在主wxs文件中包括并使用这些版本号:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <?include Version.wxi ?>
  <?define UpgradeCode="GUID"?>
  <Product Id="*" 
        Name="$(var.ProductName) $(var.ProductVersion.Major).$(var.ProductVersion.Minor)" 
        Version="$(var.ProductVersion)" Language="1033" 
        Manufacturer="$(var.Company)" UpgradeCode="$(var.UpgradeCode)">
Run Code Online (Sandbox Code Playgroud)

在编译wix项目之前,生成Version.wxi。例如,修改.wixproj文件以添加执行该操作的目标。