के लिए बिल्ड करते समय x86 बनाम AnyCPU को लक्षित करना मेरे पास एक मौजूदा सी # एप्लिकेशन .NET 2.0 के लिए लिखा गया है और इस समय किसी भीCPU को लक्षित करता है। यह वर्तमान में कुछ तृतीय पक्ष .NET DLL का संदर्भ देता है जिनके पास मेरे पास स्रोत नहीं है (और मुझे यकीन नहीं है कि वे x86, x64 या AnyCPU के लिए बनाए गए थे)।64 बिट विंडो ओएसई
मैं एक 64 बिट विंडोज ओएस, जो मंच मैं अपने अनुप्रयोग के लिए क्रम में लक्षित कर त्रुटियों के बिना चलाने के लिए चाहिए पर विशेष रूप से अपने आवेदन को चलाना चाहते हैं? इस समय मेरी समझ लक्षित करने के लिए है:
- : कम से कम एक तीसरे पक्ष के नेट dll 86 या उपयोग पी के लिए बनाया गया है, तो/आह्वान Win32 DLLs के साथ इंटरफेस करने। 32 बिट और 64 बिट ओएस दोनों पर 32 बिट मोड में एप्लिकेशन चलाया जाएगा।
- : सभी तृतीय पक्ष नेट DLLs पहले से ही 64 या AnyCPU के लिए बनाया जाता है। एप्लिकेशन केवल 64 बिट ओएस में चलाएगा।
- AnyCPU: सभी तृतीय पक्ष नेट DLLs पहले से ही AnyCPU के लिए बनाया जाता है। एप्लिकेशन 32 बिट ओएसईएस पर 64 बिट मोड और 64 बिट ओएस पर 64 बिट में चलाएगा।
इसके अलावा, मैं सही विश्वास है कि, जबकि लक्षित कर AnyCPU कोई त्रुटि है जब एक आवेदन तीसरे पक्ष के 86 नेट DLLs संदर्भित निर्माण उत्पन्न होगा, आवेदन एक क्रम अपवाद फेंक जब यह जब इसे चलाता इन DLLs लोड करने के लिए कोशिश करता है एक 64 बिट ओएस पर।
इसलिए, जब तक कि मेरे तीसरे पक्ष DLLs में से एक पी कर रहा है/आह्वान या 86 कर रहे हैं, मैं केवल इस आवेदन के लिए 86 लक्षित कर सकते हैं?
कोई भी वीसीयू मेरे वीएस इंस्टेंस के लिए डिफ़ॉल्ट लक्ष्यित प्लेटफार्म है, जो स्पष्ट रूप से ठीक है जब आपके पास .NET ढांचे के अलावा अन्य कोई निर्भरता नहीं है। एक बार अन्य निर्भरताओं को पेश करने के बाद, धारणा है कि ऐप 64 बिट प्लेटफॉर्म पर काम करना जारी रखेगा क्योंकि एप्लिकेशन को किसी भी सीसीपीयू के लिए लक्षित किया गया है और बिना किसी समस्या के संकलन एक दर्दनाक होगा। जवाब के लिए धन्यवाद :) – anonymous