0

理解が不足しているかどうかはわかりませんが、WiXインストーラーに次のコードを実装しています

<?ifdef svn.BUILD_NUMBER?>
  <?define PRODUCTVERSION="1.0.$(svn.BUILD_NUMBER).0"?>
<?else?>
  <?define PRODUCTVERSION="1.0.1.0"?>
<?endif?>

<Product Id="*" Name="My Installer" Language="1033" Version="$(var.PRODUCTVERSION)" Manufacturer="My Corporation" UpgradeCode="170e2710-5690-4433-8787-7bcd0a922fbc">

何を試しても、インストーラーに SVN リビジョン番号を使用させることができません...何か不足していますか、何か間違っていますか?

4

1 に答える 1

1

変数には、作成方法に応じて、次の 3 つのプレフィックスのいずれかが必要です。

  • 変数。
  • 環境
  • システム。

ドキュメンテーション

この「svn.BUILD_NUMBER」はどこから来たのですか?

アップデート:

あなたのコメントから、プロジェクトの外部からリビジョン番号を取得して内部に持ち込む必要があるようです。これを行うには多くの方法があります。一部の CI サーバーは、リビジョン番号を与えるビルドの環境変数を設定します。

var.いずれにせよ、 orを使用してプリプロセッサ変数の使用法を修正する必要がありますenv.

<?ifdef env.BUILD_NUMBER?>
  <?define PRODUCTVERSION="1.0.$(env.BUILD_NUMBER).0"?>
<?else?>
  <?define PRODUCTVERSION="1.0.1.0"?>
<?endif?>

最初に環境変数を作成する必要がある場合は、次のようなコマンドを実行します。

set BUILD_NUMBER=
for /F "tokens=1,2"  %t  in ('svn info') do ^
    @if "%t"=="Revision:" set BUILD_NUMBER=%u

必要に応じて、より洗練されたものにすることができます: WiX インクルード (.wxi) を生成し、MSBuild を使用して (参照した記事を参照)、実行などのタスクを実行し、 XML 処理でsvn info使用します....snv info --xml

于 2013-07-12T19:29:49.037 に答える