2011-08-08 8 views
5

मैं एक इंस्टॉलर पर काम कर रहा हूं जो कुछ फ़ाइलों को किसी अन्य एप्लिकेशन में छोड़ देता है जो इसकी फाइलें [SystemDrive] \ appName पर रखता है। इंस्टॉलर का उपयोग केवल आंतरिक स्वचालन में किया जाता है, इसलिए यह ठीक है अगर यह अन्य इंस्टॉल स्थानों पर विचार नहीं करता है।वाईएक्स - सिस्टम ड्राइव में फ़ाइलों को स्थापित करना

मुझे पता चला है कि डिफ़ॉल्ट रूप से वाईएक्स सबसे नि: शुल्क स्थान के साथ ड्राइव में लक्ष्य निर्देशिका सेट करता है। इसके बजाय सिस्टम ड्राइव में एक निश्चित निर्देशिका निर्दिष्ट करने का सबसे अच्छा तरीका क्या है?

उत्तर

6

rootdrive का मूल्य निर्धारित करें ड्राइव करने के लिए आप

<CustomAction Id='SetRootDrive' Property='ROOTDRIVE' Value='[%SystemDrive]\'/> 

सिस्टम ड्राइव डिफ़ॉल्ट रूप से हो जाएगा चाहते हैं डिफ़ॉल्ट ओएस द्वारा प्रयोग किया जाता

जोड़ा गया कोड 'SetRootDrive' कार्रवाई कॉल करने के लिए ड्राइव: आप इसे InstallUISequence

<InstallUISequence> 
    <Show Dialog="MyWelcomeDlg" Before="CostFinalize">NOT Installed</Show> 
    <!-- App search is what does FindInstallLocation, and it is dependent on FindRelatedProducts --> 
    <AppSearch After="FindRelatedProducts"/> 
    <Custom Action="SetRootDrive" Before="CostInitialize"></Custom> 
</InstallUISequence> 
+0

इस कस्टम कार्रवाई को कब निर्धारित करने की आवश्यकता है? मैंने लागत शुरू करने से पहले इसे सेट किया है और यह काम नहीं कर रहा है। –

+0

मैंने अपने उत्तर में कॉल जोड़ा है –

+0

बहुत बहुत धन्यवाद! यह बहुत अच्छा काम करता है! –

3

MSI पहले से ही आपको WindowsVolum में मान देता है ई संपत्ति। इसका उपयोग मूल निर्देशिका/@ आईडी के रूप में करें।

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