2010-01-29 16 views
6

मैं एक WiX है मैं, productLanguage के मूल्य के भाषा विशेषता निर्धारित करना चाहते हैं, क्योंकि यह केवल स्थानीयकृत किए जाने पूर्णांकों लेता निम्नलिखित कोडक्या किसी प्रॉपर्टी के मूल्य पर प्रीप्रोसेसर वैरिएबल सेट करने का कोई तरीका है?

<Fragment Id="PropertyFragment"> 
    <Property Id="DynamicLanguageCode" Value="[SystemLanguageID]" /> 
    <?define productLanguage = [DynamicLanguageCode]?> 
</Fragment> 
अब मेरी उत्पाद टैग में

मेरी WiX स्क्रिप्ट में साथ फ़ाइल शामिल हैं। क्या कोई तरीका है कि मैं अपने चर को संपत्ति के मूल्य को सौंपा जा सकता हूं?

धन्यवाद

उत्तर

22

वहाँ क्या अंतर wix चर और Windows इंस्टालर गुणों के बीच है के बारे में आपके मन में भ्रम हो रहा है।

विक्स चर को $(var.foo) के रूप में संदर्भित किया जा सकता है। इस तरह के एक चर को -d कमांड लाइन तर्क candle.exe पर गुजरकर परिभाषित किया जा सकता है। इसे <?define foo="bar"?> वाक्यविन्यास द्वारा भी परिभाषित किया जा सकता है। एक विक्स वैरिएबल एक अवधारणा है जो आपके सेटअप के निर्माण के दौरान ही मौजूद है। यह कुछ ऐसा है जो इसे किसी भी अन्य होने से पहले विक्स प्रीप्रोसेसर द्वारा भरा जाता है, सी ++ में #define कथन की तरह।

विंडोज इंस्टालर प्रॉपर्टी कुछ ऐसा है जो इंस्टॉलेशन के दौरान भर जाता है। गुणों को परिभाषित करने का एक तरीका उन्हें एमएसआई फ़ाइल के Property table में रखना है। यह विक्स संपत्ति तत्व करता है। कुछ (लेकिन सभी नहीं) data types एक विंडोज इंस्टालर डेटाबेस में प्रयुक्त होता है, तो आप [FOO] वाक्यविन्यास के साथ ऐसी संपत्ति का संदर्भ देने की अनुमति देते हैं। इसका समर्थन करने वाले डेटा प्रकार का एक उदाहरण Shortcut डेटा प्रकार है, जो Target विक्स Shortcut तत्व की विशेषता द्वारा उपयोग किया जाता है। Language डेटाटाइप नहीं इसका समर्थन करता है!

+0

धन्यवाद स्पष्टीकरण के लिए –

2

उनका तर्क के बिना क्यों, इस तरह किया जा सकता है:

<Property Id="DynamicLanguageCode" Value="$(var.SystemLanguageID)" /> 
संबंधित मुद्दे

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