2010-01-06 10 views
5

मैं विंडोज 7 के x64 संस्करण का उपयोग करता हूं। मेरा एप्लिकेशन कुछ COM सर्वर (सामान्य देशी x86 COM सर्वर) का उपयोग करता है जिसे x64 संदर्भ में लोड नहीं किया जा सकता है। तो मैंने WOW का उपयोग कर इसे x86 एप्लिकेशन के रूप में चलाने का निर्णय लिया, इसलिए मैंने प्लेटफार्म लक्ष्य को x86 के रूप में सेट किया।VS2008 में Windows x64 पर x86 .NET अनुप्रयोग को डिबग करना

लेकिन विजुअल स्टूडियो 2008 डीबगर ने सभी स्रोत फ़ाइलों के लिए "स्रोत फ़ाइल अलग है ...." जैसे संदेश दिखाने के लिए शुरू किया, जब मैं इसे डीबग करने का प्रयास करता हूं। इस व्यवहार का कारण क्या है? यह सवाल वहाँ पैदा हुआ था "The source file is different...." message in Visual Studio 2008 is result of debugging x32 apps on x64 Windows

अद्यतन: मैं साफ समाधान, फिर से बनाया समाधान, हटाया obj, बिन और आदि फोल्डर, कंप्यूटर को पुनः, विजुअल स्टूडियो ... तो, और क्या समस्या हो सकती है पुनर्स्थापित?

Update2: आप x86 के लिए आप इस मुसीबत देखेंगे नए विंडोज आवेदन परियोजना और परिवर्तन लक्ष्य मंच बनाते हैं। लेकिन यदि आप प्रोजेक्ट से सेटिंग्स 1. सेटिंग्स को हटाते हैं तो परेशानी समाप्त हो जाएगी !!। कोई उपाय?

Update3: http://social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/bc297668-65b4-46e8-969e-c7a6340d33b6

+0

क्या आपने अपनी प्रोजेक्ट के आउटपुट फ़ोल्डर्स को साफ़ किया था और बिल्ड लॉग की जांच की थी कि निर्माण वास्तव में सफल रहा था? –

+0

मैंने प्रश्न के विवरण में उत्तर दिया। –

+0

और यदि आप अपने लक्ष्य प्लेटफ़ॉर्म को x64 पर वापस स्विच करते हैं, तो डिबगिंग फिर से काम करता है? –

उत्तर

4

विंडोज 7 डिफ़ॉल्ट रूप से वीएस 2008 के लिए विंडोज एक्सपी एसपी 3 संगतता मोड सेट करता है।विंडोज विस्टा एसपी 2 मोड में संगतता बदलने से परेशानी हल हो गई है।

+0

मेरे लिए यह विजुअल स्टूडियो 2010 के लिए भी काम करता है। – andnil

+0

यह मेरे लिए काम किया लेकिन मैंने विंडोज 7 मोड धन्यवाद चुना – Xenon

4

आप हो रही है त्रुटि संदेश एक WOW64 बिट अनुप्रयोग डिबगिंग से संबंधित नहीं है। यहां एक मुद्दा भी कम है क्योंकि विजुअल स्टूडियो WOW64 के अंदर 32 बिट प्रक्रिया चलाता है। तो x64 के बजाय -> x86 आप वास्तव में एक x86 -> x86 डीबगिंग सत्र कर रहे हैं।

यहां क्या हो रहा है कि विजुअल स्टूडियो पीडीबी से स्रोत फ़ाइलों के लिए चेकसम पढ़ रहा है और यह आपके द्वारा उपयोग की जाने वाली फ़ाइलों के चेकसम से मेल नहीं खाता है। इस के लिए सबसे अधिक संभावना कारणों

  • हैं तारीख PDB के
  • गलत स्रोत फ़ाइलों का उपयोग से बाहर। ब्रांचिंग परिदृश्यों में आपको लगता है कि यह फ़ाइल से गलत संस्करण को आसानी से पकड़ सकता है।

तरह से मैं आम तौर पर इस के माध्यम से डिबग

  • बंद वी.एस. है और मैन्युअल रूप से बाइनरी और बाइनरी निर्देशिका
  • पुनः प्रारंभ वी.एस. को हटाना और पुनर्निर्माण
  • बंद वी.एस.
  • पुनः प्रारंभ वी.एस. और समाधान
  • खोलने के बिना चल रहे प्रोजेक्ट से संलग्न करें, फिर फ़ाइलों को मैन्युअल रूप से खोलें
+0

मेरा अपडेट 2 –

1

आप x86 निर्माण प्रकार भी देख सकते हैं। जब आपने इसे बनाया है तो आप डिफॉल्ट बिल्ड से सेटिंग्स की प्रतिलिपि नहीं बना सकते हैं और जब आप अपना एप्लिकेशन चलाते हैं तो आपका कोई भी कोड निर्माण नहीं कर रहा है।

समाधान गुण लाएं और कॉन्फ़िगरेशन गुण \ कॉन्फ़िगरेशन पृष्ठ देखें। फिर सुनिश्चित करें कि सभी परियोजनाओं को के तहत चेक किया गया है जो आप उपयोग कर रहे कॉन्फ़िगर/प्लेटफ़ॉर्म कॉम्बो के लिए बनाएं।

+0

देखें, वास्तव में, मौजूदा कॉन्फ़िगरेशन में निर्माण से बाहर की जाने वाली परियोजनाओं को मुझे एक आम गलती दिखाई देती है। हालांकि, समाधान की कुल सफाई (जैसा ओपी किया गया था) आपको नोटिस करना चाहिए? –

+0

सच है। लेकिन वह कंपाइलर त्रुटियों को अनदेखा कर रहा है/संदेश बना सकता है जिसे उसने संभवतः नहीं देखा होगा। अगर वह स्पष्ट रूप से साफ करने के बाद इसे स्पष्ट रूप से बनाने के लिए कहता था तो वह भी इस समस्या को नहीं देख पाएगा। –

+0

मैंने x86 "बिल्ड टाइप" नहीं बनाया है, मैंने अभी तक किसी भी CPU से x64 तक प्रोजेक्ट गुणों के बिल्ड पेज पर प्लेटफ़ॉर्म लक्ष्य बदल दिया है। यह सब कुछ है –

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