मैं वर्तमान में एक बैच स्क्रिप्ट लिख रहा हूं जो एक ऑपरेटिंग सिस्टम पर प्रक्रियाएं शुरू करेगा। इस बैच स्क्रिप्ट को एक परीक्षण एप्लिकेशन से कहा जाता है जो 32-बिट और 64-बिट ऑपरेटिंग सिस्टम दोनों पर 32-बिट एप्लिकेशन के रूप में बनाया और चलाया जाता है। बैच स्क्रिप्ट निम्नानुसार लिखी गई है:
set EXE=%1
if exist %WINDIR%\sysnative\%1 ( set EXE=%WINDIR%\sysnative\%1 )
start "" "%EXE%"
मैं 64-बिट ऑपरेटिंग सिस्टम पर 64-बिट एप्लिकेशन और 32-बिट ऑपरेटिंग सिस्टम पर 32-बिट एप्लिकेशन को शुरू करने के लिए sysnative चर का उपयोग कर रहा हूं। मैं इस स्क्रिप्ट का उपयोग विस्टा और उसके बाद के ऑपरेटिंग सिस्टम पर करता हूँ। यह Windows Vista x64 RTM को छोड़कर सभी ऑपरेटिंग सिस्टम पर ठीक से काम करता है। जब बुलाया जाता है, तो मुझे एक "एप्लिकेशन प्राप्त करने में विफल रहा है क्योंकि इसका साइड-बाय-साइड कॉन्फ़िगरेशन गलत है। कृपया अधिक विस्तार के लिए एप्लिकेशन ईवेंट लॉग देखें।"
मैंने Windows Vista x64 RTM पर 32-बिट कमांड लाइन खोली है और C: \ Windows \ sysnative पर नेविगेट किया है और वहां से notepad.exe, calc.exe आदि कॉल करने का प्रयास किया है और हमेशा एक ही त्रुटि प्राप्त करता है। मैंने Microsoft Visual c ++ 2008 पुनर्वितरण पैकेज की स्थापना रद्द करने और पुन: स्थापित करने की भी कोशिश की है, लेकिन कोई फायदा नहीं हुआ। एप्लिकेशन / सुरक्षा / सिस्टम ईवेंट लॉग में इससे संबंधित कोई सूचना / चेतावनी / त्रुटि संदेश नहीं होते हैं। यह समस्या केवल Windows Vista x64 RTM पर है। कोई विचार?