2011-06-10 14 views
13

में पास कमांड लाइन वैरिएबल मैं वाईएक्स के साथ एक एमएसआई इंस्टॉलर का निर्माण कर रहा हूं और मैं WixUI_Advanced का उपयोग कर रहा हूं। मेरे ApplicationFolder की परिभाषा इस तरह दिखती है, किसी अन्य SO उत्तर (WiX tricks and tips) में सलाह के बाद।वाईएक्सएक्स आधारित विंडोज इंस्टालर एमएसआई

<Directory Id="TARGETDIR" Name="SourceDir"> 
    <Directory Id="$(var.PlatformProgramFilesFolder)"> 
     <Directory Id="APPLICATIONFOLDER" Name="$(var.InstallName)"> 

मैं अब उपयोगकर्ता एक मूक स्थापित करने और रास्ते पर ApplicationFolder नाम गुजरती हैं, या तो उचित प्रोग्राम फ़ाइलों फ़ोल्डर या निरपेक्ष के सापेक्ष करने के लिए विकल्प देना चाहते हैं।

मुझे पता है कि मैं msiexec, की कमांड लाइन पर सार्वजनिक संपत्ति मानों को पारित कर सकता हूं लेकिन मैं इसे ApplicationFolder के मान के रूप में कैसे उपयोग करूं और मैं इसे पूर्ण बनाम सापेक्ष पथों के लिए कैसे सेट करूं?

उत्तर

17

तुम बस जब msiexec चल कमांड लाइन पर संपत्ति परिभाषित करें ": \ Program Files \ कंपनी \ उत्पाद सी" निर्देशिका

msiexec /i product.msi APPLICATIONFOLDER="C:\Program Files\Company\Product\" 

फाइलों में स्थापित किया जाएगा।

मैं पूर्ण पथ का उपयोग करके सलाह दूंगा। एक सापेक्ष पथ अप्रत्याशित परिणाम हो सकता है।

+0

यह काम करता है जब मैं एक/शांत इंस्टॉल करता हूं, लेकिन जब मैं एक इंटरैक्टिव इंस्टॉल करता हूं और लाइसेंस स्क्रीन पर उन्नत बटन दबाता हूं तो मुझे निर्देशिका चयन संवाद में मेरा निर्दिष्ट आवेदन फ़ोल्डर दिखाई नहीं देता है। मैं उम्मीद करता हूं/इसे वहां भी दिखाना चाहता हूं। –

+2

@ जेरोएन मैं देखता हूं। मैं एमएसआई वर्बोज़ लॉग का उपयोग करके सुझाव दे सकता हूं कि APPLICATIONFOLDER का मूल्य क्यों संशोधित किया गया है और कहां है। अपने पैकेज को 'msiexec/i package.msi/lv * x log.txt APPLICATIONFOLDER = "C: \ Program Files \ Company \ Product \" के रूप में चलाएं। फिर 'APPLICATIONFOLDER' के लिए लॉग खोजें, आप देखेंगे कि यह कब संशोधित है। (क्षमा करें मुझे थोड़ी देर लग गई।) –

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