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

标签 wix installation windows-installer version

嗨,我有一个 C/C++ 头文件,其中包含我的产品版本信息 init,如下所示:

#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"

有什么办法可以自动读取这个文件来更新我的 wix 3.6 安装程序中的版本号?目前我对其进行了硬编码,这对于发布时并不理想。谢谢

最佳答案

您可以做的是创建一个生成文件 Version.wxi 的 c/c++ 程序。看起来像这样:

<?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>

然后你可以在主 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)">

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

关于wix - 自动更新 wix 安装程序中的版本信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12354617/

相关文章:

wix - 为什么安装程序在单击快捷方式后运行?

asp.net - 在脚本中安装 ASP.NET + SQL Express

.net - 当用户在其 .NET 安装中选择 "Repair"时,幕后发生了什么?

WIX安装目录不可自定义?

c# - Wix在安装文件夹中添加外部dll

Wix Installer 开始菜单快捷方式未出现

database - 如何运行 sql 脚本以使用 Wix 创建数据库

r - 使用 conda 安装 R 3.6.1 无限期挂起

java - izpack java 安装程序,带 noShow 的快捷方式仍然显示批处理窗口

installation - 使用 Installshield 和用户对话框卸载 MSI 时的权限提升