मैं CTP के बाद से विंडोज 7 के 64-बिट संस्करण का उपयोग कर रहा हूं और उन अनुप्रयोगों में कुछ समस्याओं में चला गया है जो C:\Program Files (x86)
फ़ोल्डर में स्थापित होते हैं । वैसे भी 2 अलग-अलग प्रोग्राम फ़ाइल निर्देशिकाओं का उद्देश्य क्या है?
मेरे द्वारा इंस्टॉल किया गया प्रत्येक प्रोग्राम C:\Program Files (x86)
फ़ोल्डर में चला गया है । ऐसा लगता नहीं है कि ऐप 32 या 64 बिट का है। 64-बिट ऐप्स को क्यों नहीं रखा गया C:\Program Files
?
क्या C:\Program Files
इसके बजाय डिफ़ॉल्ट को बदलने का एक तरीका है ? अगर मैं अभी सबकुछ डालूं तो क्या यह कुछ भी गड़बड़ करेगा C:\Program Files
?
अगर वास्तव में 64 बिट ऐप्स के लिए एक अलग फ़ोल्डर होने का कुछ लाभ है, तो ऐसा लगता है कि अधिक समझदार डिफ़ॉल्ट C:\Program Files
x86 एप्लिकेशन के लिए उपयोग करना होगा और C:\Program Files (x64)
नए 64-बिट एप्लिकेशन के लिए एक नया फ़ोल्डर बनाना होगा । यह पीछे की संगतता को बनाए रखने में मदद करेगा। मैं एक सॉफ्टवेयर डेवलपर के रूप में काम करता हूं और मेरी कुछ परियोजनाओं में पुस्तकालयों के तहत पथ संदर्भ शामिल हैं C:\Program Files
। अब उन संदर्भों को विंडोज 7 मशीन पर तोड़ दिया गया है जिन्होंने उन्हें अंदर रखा है C:\Program Files (x86)
। मैंने भी इंस्टॉलर में लक्ष्य स्थान को बदलने की कोशिश की C:\Program Files
, लेकिन इसे नजरअंदाज कर दिया गया और ऐप C:\Program Files (x86)
वैसे भी चला गया ।
यह बहुत निराशाजनक है क्योंकि मुझे 32 और 64 बिट मशीनों के बीच स्रोत कोड साझा करने की आवश्यकता है और मैं कुछ कॉन्फ़िगरेशन फ़ाइल के साथ गड़बड़ नहीं करना चाहता जो इन पुस्तकालयों के लिए अलग-अलग मशीनों पर अलग-अलग तरीके से रास्ता तय करता है।
पर्यावरण चर के बारे में संपादित करें: (सरलता के लिए चर के केवल डिफ़ॉल्ट अंग्रेजी मूल्यों का उपयोग करना।) 64-बिट मशीन पर %ProgramFiles%
होगा C:\Program Files
जबकि ब्रांड नया चर %ProgramFiles(x86)%
होगा C:\Program Files (x86)
। इसलिए, यदि आपके पास एक 32-बिट प्रोग्राम है जिसे उस फ़ोल्डर पथ को खोजने की आवश्यकता है जिसे इसके तहत स्थापित किया जाएगा, तो यह देखने के लिए जांचना होगा कि क्या यह 32-बिट या विंडोज के 64-बिट संस्करण में चल रहा था। जो पर्यावरण चर का उपयोग करने के लिए पता करने के लिए। इस विचार के बिना लिखे गए किसी भी 32-बिट ऐप को 64-बिट मशीन पर सही ढंग से काम करने के लिए अपडेट करने की आवश्यकता होगी। तो यहां तक कि पर्यावरण चर का उपयोग करते हुए, पीछे की संगतता टूट गई है।
इसके अलावा, %ProgramFiles(x86)%
विंडोज के 32-बिट संस्करणों पर मौजूद नहीं है। यदि ऐसा होता है, तो 32-बिट ऐप्स हमेशा उस पर्यावरण चर का उपयोग कर सकते हैं और जिस ओएस पर वे चल रहे हैं उसके आधार पर किसी भी सशर्त तर्क की आवश्यकता नहीं होगी।
%ProgramFiles%
पर्यावरण चर का उपयोग करने से यह हल हो जाएगा। सुनिश्चित नहीं है कि यह x86 / 64bit अंतर को कैसे संभालता है।