2012-04-17 18 views
9

if/ifdefdocumentationは多少混乱します。 <?if [expression] ?>のために、それは述べている:環境変数の存在を確認するにはどうすればよいですか?

  • 変数が存在
    をチェックするために使用することができます...
  • 変数が存在しない場合は、評価が失敗し、エラーが発生します。あなただけ行けば

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

通常、これはifdefを使用しますが、これらはWixでも不思議なことです。 $(var.Variable)の代わりに<?ifdef Variable?>を使用します。つまり、環境のように変数をチェックすることはできません。ウィックスで

#ifdef MY_ENVIRONMENT_VARIABLE 

:私は通常のCプリプロセッサと同等のものを得るために行う必要がある何

+0

注: '<?ifdef MY_ENVIRONMENT_VARIABLE?>'は単独では動作しません。 – fredley

答えて

16

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

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

+1

これはコンパイル時に機能しますが、実行時チェックはどうですか? – Cymon

+0

@Cymon http://stackoverflow.com/questions/3459998/get-an-environment-variable-into-a-wix-property?answertab=active#tab-top – Azimuth

5
<Condition Message="Missing Environment Variable Message Goes Here"><![CDATA[%envvargoeshere]]></Condition> 

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

関連する問題