2

私の目標は、WIX 3.6 プロジェクトで出力 msi ファイルにバージョン番号を付けて自動命名することです。次のリンクを見つけました: WiX の自動インストーラーのバージョン番号を再訪しましたが、少し異なるシナリオがあります: アセンブリのバージョン番号を参照して製品のバージョン番号を制御したくありません。代わりに、wix ファイルに割り当てたいだけです。具体的には、次のようなプロパティを定義する wxi ファイルがあります。

<?define VersionNumber = "1.1.2000" ?>  

その結果、Product.wxs ファイル内の任意の場所でこの VersionNumber 変数を使用できます。しかし、出力 msi ファイルの名前を変更する最も簡単な方法は、MSBuild にビルド後のタスクを追加することだと思われるため、この VersionNumber を MSBuild プロジェクト ファイルに渡す必要があります。これが私を止めるものです。

MSBuild で VersionNumber 定数を定義し、それを WIX 内で使用するという逆の方法を試しました。さまざまなビルド/プラットフォームの組み合わせでこの定数を同じに保つ必要があることを除いて、問題なく動作します。VS IDE でソフトウェアをビルドしています。つまり、IDE のウィンドウでバージョン番号を変更すると、特定のビルド/プラットフォームの組み合わせにのみ適用され、他の組み合わせは変更されません (コマンド ラインからビルドしているかどうかはわかります。バージョン番号を渡すだけで、既存のものを上書きできます)。そして、それは私が見たくないものです。間違いを避けるために、バージョン番号を 1 か所で定義するというアイデアが気に入っています。

どんな助けでも大歓迎です!

4

1 に答える 1

2

セットアップ プロジェクト プロパティの [ビルド] タブで [すべての構成] と [すべてのプラットフォーム] を選択した後、プリプロセッサ変数を定義します。

バージョン番号だけを保持するプロジェクトに .wixproj の要素を追加することで、これを実現できます。.wixproj を変更しますが、1 回だけです。そしておそらく、このプロパティ ファイルを .wixproj 自体に適切なアクション (なし?) で追加して、IDE 内から変更できるようにすることができます。

何かのようなもの:

バージョンのプロパティ

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
  <PropertyGroup>
    <WhateverTheVersionPropertyNameIs>x.x.x.x</WhateverTheVersionPropertyNameIs>
  </PropertyGroup>
</Project>

.wixproj ファイルで、最後に追加します

<Import Project="Version.properties"/>

于 2012-11-05T13:52:56.607 に答える