11

/のドキュメントは少しわかりにくいです。については、次のように述べています。ififdef<?if [expression] ?>

  • 変数を使用して存在を確認できます
    ...
  • 変数が存在しない場合、評価は失敗し、エラーが発生します。

あなたがただ行った場合、それは判明しました: <?if $(env.MY_VAR) ?>andMY_VARが定義されていない場合、コンパイルは失敗します。存在を確認するにはどうすればよいですか?

通常、これは を使用する場所ですifdefが、これらは Wix でも奇妙に機能します。$(var.Variable)構文を使用する代わりに を使用します<?ifdef Variable?>。つまり、この方法では環境変数をチェックできません。

通常の C プリプロセッサと同等のものを取得するには、次のことを行う必要があります。

#ifdef MY_ENVIRONMENT_VARIABLE

ウィックスで?

4

2 に答える 2

20

ifdefセクションで環境変数を参照する正しい方法は次のとおりです。

<?ifdef env.MY_VAR?>
  ...
<?endif?>

これは期待どおりに機能します。

于 2012-04-17T10:44:48.097 に答える
5
<Condition Message="Missing Environment Variable Message Goes Here"><![CDATA[%envvargoeshere]]></Condition>

上記の要素を wxs ファイルの Package 要素に入れます。環境変数が存在しない場合、インストールは実行時 (インストール時) に失敗し、適切なメッセージが表示されます。

于 2014-10-28T11:30:21.363 に答える