2012-08-27 16 views
5

के तहत लाइट्सविच 2012 प्रोग्राम नहीं चलाया जा सकता है मैंने एलएस 2012 में लाइट्सविच 2011 प्रोजेक्ट माइग्रेट कर दिया है। मैं "vslshost.exe" चलाकर संकलित एप्लिकेशन शुरू करता हूं। यह विंडोज 7 (32 और 64 बिट का उपयोग करके अच्छी तरह से काम करता है, लेकिन जब मैं विंडोज़ XP का उपयोग करता हूं तो एप्लिकेशन विफल रहता है (vslshost.exe मान्य Win32-application नहीं है)। एलएस 2012 में स्विच करने से पहले सब ठीक हो गया।विंडोज एक्सपी

आवेदन डेस्कटॉप एप्लिकेशन के रूप में संकलित किया गया है, यह एक SQL डेटाबेस पर निर्भर करता है जो उपलब्ध है और आंतरिक अनुप्रयोग डेटा डेटाबेस का उपयोग नहीं करता है। मैं इसे 2 पीसी पर पुन: पेश कर सकता हूं, दोनों में विंडोज एक्सपी अद्यतित है।

बनामशोस्ट को देखने के बाद ildasm के साथ .exe, मुझे लगता है कि परियोजना को .NET 4.0 को लक्षित करने के लिए संकलित किया गया था। इसलिए फ्रेमवर्क परियोजना को एलएस 2012 में माइग्रेट करने के साथ नहीं बदला गया।

मैं इस समस्या से संबंधित किसी भी जानकारी को खोजने में सक्षम नहीं था। मैं केवल वीएस 2012 का उपयोग कर विंडोज एक्सपी और सी ++ के संबंध में कुछ मुद्दों पर आया।

क्या आपके पास इस पर कोई जानकारी है?

अग्रिम धन्यवाद!

+0

लाइट्सविच .NET का उपयोग करता है, है ना? .NET का कौन सा संस्करण आप लक्षित कर रहे हैं? –

+0

यह एक अच्छा सवाल है, क्योंकि मैं शर्मिंदा नहीं हूं। मुझे लक्ष्य बदलने या देखने के लिए कोई विकल्प नहीं मिला है कि मैं क्या लक्षित कर रहा हूं। यह कम से कम .NET 4.0 होना चाहिए, यह 4.5 – Chake

+0

भी हो सकता है। यह .NET 4.0 है - अब मैं शर्मिंदा हूं;) – Chake

उत्तर

7

मुझे एक ही समस्या थी, इसे निम्नलिखित करने के द्वारा काम करने में कामयाब रहा। मैं एक दृश्य स्टूडियो कमांड प्रॉम्प्ट शुरू और निष्पादन पर DUMPBIN भाग गया:

dumpbin /headers vslshost.exe 

DUMPBIN पता चला है कि उप प्रणाली संस्करण 6 (Vista) के लिए स्थापित किया गया था। अजीब OS संस्करण इस पेज http://supportxp.com/2012/03/30/editbins-dirty-little-secret/ के निर्देशों का अनुसरण 4. करने के लिए स्थापित किया गया था मैं 5.1 (XP) में संस्करण संख्या निर्धारित करने के लिए

editbin vslshost.exe /SUBSYSTEM:WINDOWS,5.01 /OSVERSION:5.1 

इसे बाहर परीक्षण किया और अपने आवेदन में यह अब तक XP पर ठीक काम कर रहा editbin इस्तेमाल किया। मैंने जेनरेट किए गए इंस्टॉलर को काम करने की भी कोशिश की लेकिन यह InitializeCriticalSectionEx को फ़ंक्शन कॉल पर विफल रहा जो XP में मौजूद नहीं है।

या आप इसे आईआईएस पर तैनात सेवाओं के साथ डेस्कटॉप एप्लिकेशन के रूप में तैनात कर सकते हैं। यह तरीका एक्सपी का समर्थन करने के लिए ठीक लगता है।

+0

नील, आपने मेरा दिन पूरी तरह से बचाया! बहुत बहुत धन्यवाद! लड़का, इसे वोट दो !मैं नहीं कर सकता, प्रतिष्ठा एम के लिए धन्यवाद ( – Chake

+0

हमें वीएस2012 (वीएस2012 अपडेट 1 सीटीपी 4 से KB270250) के लिए निम्न अद्यतन भी चलाया गया था ताकि क्लिकऑन बूटस्ट्रैपर हमारे लिए काम करे: http://download.microsoft.com/ डाउनलोड/1/डी/4/1D49D964-DCEC-4BCA-941A-68C6614E9613/vsupdate_KB2707250.exe –

0

.NET Framework 4.5 को कम से कम Windows Vista की आवश्यकता होती है। the official system requirements देखें।

जब Visual Studio 2012 का उपयोग कर, आप यदि आप Windows XP पर चलने के लिए आवेदन चाहते .NET 4.0 लक्षित करने के लिए सावधान रहना होगा, और कुछ सुविधाओं उपलब्ध नहीं होगा (उदाहरण के लिए, सी # 5.0 await/async क्रम समर्थन की आवश्यकता केवल .NET 4.5 में उपलब्ध है)।

+0

मैंने [ildasm] (http://msdn.microsoft का उपयोग कर vslshost.exe पर एक नज़र डाली थी .com/en-us/library/f7dy01k1.aspx) - परियोजना .NET 4.0 का उपयोग करके संकलित की गई थी। तो समस्या एक और है :( – Chake

+0

.NET 4.5 ने सिस्टम असेंबली के संस्करण संख्या में वृद्धि नहीं की है, उनके संस्करण 4.0 पर बने रहे हैं। क्योंकि हल्का केवल प्रबंधित मेटाडेटा और कोड पर दिखता है, यह लक्ष्यफ्रेमवर्क वर्जन के साथ संकलित असेंबली के बीच कोई स्पष्ट अंतर नहीं दिखाएगा वी 4.0 और वी 4.5। हालांकि, देशी एक्सई हेडर अलग है, जिसे डंपबिन का उपयोग करके देखा जा सकता है (जैसा कि नील ने अपने जवाब में लिखा था) –

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