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

在wix安装程序中自动更新版本信息,wix,installation,windows-installer,version,Wix,Installation,Windows Installer,Version,您好,我有一个C/C++头文件,其中包含我的产品版本信息init,如下所示: #定义第4版 #定义nminorversion4 #定义第8版 #定义NBuildVersion33 #定义s_szFileVersion“4.4.8.33” #定义s_szProductVersion“4.4.8.33” 是否有任何方法可以自动读取此文件以更新wix 3.6安装程序中的版本号?目前,我有它的硬编码,这是不理想的时候,它被释放。谢谢您可以创建一个c/c++程序,生成一个文件Version.wxi,如下

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

#定义第4版
#定义nminorversion4
#定义第8版
#定义NBuildVersion33
#定义s_szFileVersion“4.4.8.33”
#定义s_szProductVersion“4.4.8.33”

是否有任何方法可以自动读取此文件以更新wix 3.6安装程序中的版本号?目前,我有它的硬编码,这是不理想的时候,它被释放。谢谢

您可以创建一个c/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>

....
然后,您可以在主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文件以添加这样做的目标。

编写一个c/c++程序来重写wxs文件中的版本号如何?@Wimmel我以为版本是在构建时设置的?这是不正确的吗?是的,所以在wxs文件生成之前运行一个程序来更新它。在您的情况下,您已经有了一个自定义头文件,所以我认为任何开箱即用的方法都不能解决您的问题。我会补充一个答案,让我更好地解释我的意思。(不假设生成了头文件)。最后是一个可以用来配置Jenkins的有效答案。谢谢