2012-06-14 5 views
7

जब मैं विजुअल स्टूडियो 2012 में एक नया WPF अनुप्रयोग बनाता हूं तो प्लेटफ़ॉर्म लक्ष्य और निर्माण कॉन्फ़िगरेशन डिफ़ॉल्ट रूप से x86 पर सेट होता है। यह एक केस क्यों है? एक सादे डब्ल्यूपीएफ एप्लीकेशन (मिश्रित मोड असेंबली के किसी भी संदर्भ के बिना) क्या कोई भी एसीसीपीयू का उपयोग कर कोई खतरा है, इसलिए मेरे डब्ल्यूपीएफ निष्पादन योग्य को मेरी x64 मशीन पर x64 कोड और x86 मशीन पर x86 पर जोड़ा जाएगा?विजुअल स्टूडियो x86 में WPF अनुप्रयोगों के लिए डिफ़ॉल्ट प्लेटफ़ॉर्म लक्ष्य क्यों है और कोई भीCPU नहीं है?

उत्तर

5

ऐसा क्यों है?

अधिकांश अनुप्रयोगों के लिए, 32 बिट के रूप में निर्माण वास्तव में बेहतर है। 64 बिट कुछ फायदे प्रदान करता है, और ज्यादातर मामलों में कुछ महत्वपूर्ण नुकसान (बहुत अधिक मेमोरी उपयोग, एकाधिक प्लेटफार्मों के साथ अधिक जटिल निर्भरता प्रबंधन, खराब डीबगिंग अनुभव इत्यादि)।

यदि, हालांकि, आपके आवेदन को बड़ी मात्रा में स्मृति का उपयोग करने में सक्षम होने के लिए की आवश्यकता है, तो निश्चित रूप से 64 बिट के फायदे हैं (और वीएस में स्विच करना आसान है), लेकिन अधिकांश एप्लिकेशन इस नाव में नहीं आते हैं।

यही कारण है कि वीएस 2012 में नया डिफ़ॉल्ट के बजाय अनुप्रयोगों के लिए AnyCPUPrefer32Bit का उपयोग करना है।

0

यदि आप एक सीपीयू निर्दिष्ट करना चुनते हैं, तो आप स्वचालित रूप से अपने .exe को एक प्लेटफॉर्म या दूसरे पर सीमित कर देते हैं।

वहाँ शायद ही कभी यह करने के लिए किसी भी कारण है, जब तक आप पूरी तरह से 32-बिट निर्भरता है:

दूसरे शब्दों में, कोई " प्रदर्शन की समस्याएं। वास्तविक मुद्दा "संगतता" है। यदि आप 32-बिट घटकों को लोड करते हैं, और आप 64-बिट प्लैटॉर्म पर हैं, तो आपको WOW64 का आह्वान करना होगा। CLRTIMAGETYPE आपको ऐसा करने की अनुमति देता है।

+2

पूरी तरह से यह सुनिश्चित नहीं है कि यह प्रश्न का उत्तर कैसे देता है ... – BoltClock

+1

जैसा कि मैंने सवाल पढ़ा है समस्या यह है कि वीएस प्रति डिफ़ॉल्ट प्लेटफ़ॉर्म विशिष्ट सेटिंग चुनता है। –

+2

इसके अलावा - x86 चुनकर, आप अपने .exe को x86 तक सीमित नहीं करते हैं। 64 बिट विंडोज बिना किसी समस्या के WOW64 के तहत x86 निष्पादन योग्य चलाएगा। X64 चुनना सीमा करता है, लेकिन अन्य सभी विकल्प नहीं हैं। –

2

इस bug report के अनुसार, यह x64 कोड के साथ x64 मशीनों पर संपादित और जारी रखने की समस्याओं के कारण किया गया था। इसे x86 में बदलकर, संपादित करें और जारी रखें ठीक से काम करता है।

इसे किसी भीCPCP पर स्विच करने में कोई खतरा नहीं होना चाहिए। मैं हमेशा ऐसा करता हूं।

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