2012-04-17 14 views
9

documentationif/ifdef के लिए थोड़ा उलझन में है। <?if [expression] ?> के लिए, यह कहा गया है:मैं पर्यावरण चर के अस्तित्व की जांच कैसे कर सकता हूं?

  • चर अस्तित्व
    के लिए जाँच करने के लिए इस्तेमाल किया जा सकता ...
  • तो चर मौजूद नहीं है, मूल्यांकन असफल हो जायेगी और एक त्रुटि बढ़ा दी जाएगी।

यह पता चला है, तो आप बस जाओ: <?if $(env.MY_VAR) ?> और MY_VAR परिभाषित नहीं है, संकलन विफल हो जाएगा। मैं अस्तित्व की जांच कैसे करूं?

आमतौर पर, यह एक है जहां कोई ifdef का उपयोग करेगा, लेकिन ये भी विक्स में अजीब तरह से काम करते हैं। $(var.Variable) सिंटैक्स का उपयोग करने के बजाय, वे <?ifdef Variable?> का उपयोग करते हैं, जिसका अर्थ है पर्यावरण चर इस तरह से चेक नहीं किए जा सकते हैं।

क्या मैं सामान्य सी पूर्व प्रोसेसर के बराबर लाने के लिए क्या करना होगा:

#ifdef MY_ENVIRONMENT_VARIABLE 
Wix में

?

+0

नोट: ' 'अपने आप पर काम नहीं करता है। – 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 फ़ाइल के पैकेज तत्व में रखें। यदि पर्यावरण चर मौजूद नहीं है तो स्थापना एक अच्छा संदेश के साथ रनटाइम (इंस्टॉल समय) पर विफल हो जाएगी।

संबंधित मुद्दे

 संबंधित मुद्दे