2013-05-09 8 views
9

पर एक वैध Win32 अनुप्रयोग नहीं है I Visual Studio 2012 Professional का उपयोग कर रहा हूं और उन्नत इंस्टॉलर (तृतीय पक्ष) का उपयोग कर इंस्टॉलर बना रहा हूं।.exe Windows XP

<appName> .exe एक मान्य Win32 अनुप्रयोग नहीं है:

जब मैं Windows XP पर स्थापित .exe चलाने के लिए, मैं निम्न संदेश मिलता है।

भी इंस्टॉल किया गया निष्पादन दोनों विंडोज 7 और 8

मैं इस कार्यक्रम Windows XP पर काम करने के लिए कैसे प्राप्त कर सकते हैं पर ठीक काम करता है?

+0

शायद यह .NET 4.5 ढांचे की तलाश में है, जो आपके Win XP मशीन पर मौजूद नहीं है। –

+1

@AlexBell संभवतः, या यह एक आर्किटेक्चर समस्या हो सकती है। क्या यह .exe x86 या x64 के रूप में संकलित था? – Adrian

+0

यदि संभव हो, नेट फ्रेमवर्क 4.0 – Steve

उत्तर

16

दृश्य स्टूडियो कमांड प्रॉम्प्ट से, इस कमांड चलाएँ:

Dumpbin.exe /headers c:\where\you\put\it\setup.exe 

कहाँ "setup.exe" सेटअप EXE अपने संस्थापक निर्माता द्वारा बनाई गई है। मैं आपके द्वारा देखी जाने वाली जानकारी का एक उदाहरण पोस्ट करूंगा:

OPTIONAL HEADER VALUES 
      10B magiC# (PE32) 
      ... 
      4.00 operating system version 
      0.00 image version 
      6.00 subsystem version    // <=== here!! 
       0 Win32 version 
      ... 

उपप्रणाली संस्करण संख्या महत्वपूर्ण है। वीएस2012 विजुअल स्टूडियो का पहला संस्करण है जिसने Vista को संस्करण संख्या 6.00 पर सेट करना शुरू किया। पिछला संस्करण, साथ ही VS2012 जब आप .NET 4.0 या इससे पहले लक्षित करते हैं, तो यह संस्करण संख्या 4.00

यह अन्यथा आगे एक महत्वपूर्ण कदम है और XP के लिए चरणबद्ध समर्थन का हिस्सा है। विंडोज संस्करण 6.00 और ऊपर, विस्टा, विन 7 और विन 8 इस नंबर पर ध्यान देते हैं। वे मान लेंगे कि आपका प्रोग्राम बाद में विंडोज फीचर्स से अनजान है और कई एपकोम्पेट शिम्स चालू होने की जरूरत है। सबसे उल्लेखनीय एक एरो में एपकंपेट है, डेस्कटॉप थीम जो वसा सीमाओं वाली खिड़कियां प्रदर्शित करती है जो माउस के साथ क्लिक करना आसान है। विंडोज उन सीमाओं के बारे में झूठ बोलेंगे, आपको बताएंगे कि आपकी खिड़की वास्तव में उससे छोटी है। प्रोग्रामर को भ्रम का एक बड़ा स्रोत जो विंडोज़ को एक-दूसरे के साथ बनाने की कोशिश करते हैं।

प्रदर्शित 6.00 देखने का नतीजा यह है कि आपका सेटअप प्रोग्राम अब XP पर नहीं चल सकता है। यह संस्करण 5.02 है।

तो सुनिश्चित करें कि आप लक्ष्य .NET संस्करण 4.5 नहीं है, यह XP के लिए उपलब्ध नहीं है। इसके बजाए 4.0 का प्रयोग करें। यदि आपको अभी भी समस्या है तो विक्रेता के समर्थन से संपर्क करें और उनसे पूछें कि उपकरण को setup.exe फ़ाइल में उस नंबर को कैसे नियंत्रित किया जाए। संख्या बदलने के लिए/SUBSYSTEM विकल्प के साथ Editbin.exe को चलाने के लिए एक वर्कअराउंड है।

+0

विंडोज सर्वर 2012 का उपयोग करके, मैंने addbin.exe को अनुपयोगी पाया। मेरे समाधान में, IExpress.exe (system32 संस्करण) का उपयोग करके, मैं frameworknet40 के साथ setup.exe के अंदर install.msi पैकेज करता हूं। हालांकि प्रत्येक डीएलएल को x86 के साथ संकलित किया गया है, जिसमें install.msi भी शामिल है, IExpress मशीन को x64 के रूप में सेट करता है (फ़ाइल को HELEER VALUES से dumpbin.exe में परिणाम)। यह केवल तभी हुआ जब मैंने Win XP 32 बिट मशीन पर IExpress.exe का उपयोग किया था, मैं एक वैध setup.exe बनाने में सक्षम था। – JDennis

0

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

Visual Studio Configuration


और फिर जब मैं dumpbin आदेश चला, मैं नीचे दिए गए परिणामों मिला है।

enter image description here


तो अब आवेदन, सामान्य परिस्थितियों में, Windows XP में चलाया जा सकता है।
उम्मीद है कि यह सहायक है।

+1

छवियां गायब हैं !!! –

+0

@ विद्यायाप्रसंथ: सुनिश्चित नहीं है कि आपका क्या मतलब था ;-) मैं उन्हें क्रिस्टल स्पष्ट देख सकता था .. – sjsam

+0

धन्यवाद, इससे मुझे मदद मिली (एक छोटे सी आधारित एक्सई का निर्माण)। हो सकता है कि आप पाठ में सेटिंग की व्याख्या करने के लिए अपना उत्तर संपादित कर सकें, अगर कोई छवियों को नहीं देख पाता है। –

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