4

こんにちは私は次のように私の製品バージョン情報initを含む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"

このファイルから自動的に読み取り、wix 3.6インストーラーでバージョン番号を更新する方法はありますか?現時点ではハードコーディングされていますが、リリースされたときには理想的ではありません。ありがとう

4

1 に答える 1

6

できることは、Version.wxi次のようなファイルを生成する ac/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 ファイルを変更して、それを行うターゲットを追加します。

于 2012-09-11T11:01:57.483 に答える