2012-06-08 8 views
5

हम किसी तृतीय-पक्ष असेंबली का उपयोग कर रहे हैं जो किसी भीCPC के रूप में संकलित प्रतीत होता है।64-बिट सिस्टम पर 32-बिट के रूप में AnyCPU चलाएं

हालांकि, हमारे पास हमारे आवेदन की कई स्थापनाएं हैं जहां इससे समस्याएं आती हैं। यह थर्ड-पार्टी असेंबली ऑरैकल डेटाकैस लाइब्रेरी का उपयोग करती है, और 64-बिट मशीनों पर काम नहीं करेगी जहां केवल 32-बिट ऑरैकल क्लाइंट स्थापित है।

एक अतिरिक्त 64-बिट ओरेकल ग्राहक स्थापित कर रहा है संभव है, लेकिन यह भी महंगा होगा

वहाँ एक AnyCPU नेट विधानसभा के लिए मजबूर करने का कोई तरीका है (आदि बहुत समय, कई मशीनों को अपडेट करने की है लेता है) बिना किसी संकलन के 32-बिट के रूप में चलाने के लिए?

उत्तर

5

CorFlags.exe पर एक नज़र डालें।

उदाहरण (सेट 32 बिट ध्वज):

corflags [path]\[YourAssembly.exe] /32Bit+ 
+0

+1। एक उदाहरण है http://www.lextm.com/2009/03/sharpdevelop-on-x64-windows-issue.html –

+0

सभी तृतीय पक्ष असेंबली पर झंडे को बदलना एक रनटाइम त्रुटि का कारण बनता है यदि 64 में लोड किया गया है बिट प्रक्रिया (देखें doco https://msdn.microsoft.com/en-us/library/ms164699(v=vs.110).aspx)। ओपी पहले से * एक रनटाइम त्रुटि है, इसलिए मैं नहीं देख सकता कि यह बहुत मदद करता है: - /। उसे EXE पर झंडे को बदलने की जरूरत है जो प्रक्रिया शुरू करता है, और जब तक वह इस (यानी क्षेत्र में) के लिए कोरफ्लैग का उपयोग कर सकता है, लंबे समय तक यह संकलन-समय – piers7

+0

@ piers7 पर x86 पर पुन: लक्ष्यित करने के लिए व्यापक रूप से सरल है * "उसे EXE पर झंडे बदलने की जरूरत है जो प्रक्रिया शुरू करता है" *: हां, यही मेरा जवाब है। * "और जब वह इस के लिए corflags का उपयोग कर सकता है (यानी क्षेत्र में)" *: हां, ओपी ने यही पूछा। – sloth

5

यह मानते हुए कि आप .EXE एक AnyCPU तीसरे पक्ष के विधानसभा आप 86 के रूप में अपनी परियोजना का निर्माण करने की आवश्यकता है के लिए एक संदर्भ है कि निर्माण कर रहे हैं। यह प्रोजेक्ट किसी भी सीसीपीयू असेंबली को संदर्भित कर सकता है लेकिन x86 के रूप में चिह्नित किया जा रहा है, यह 32 बिट और 64 बिट विंडोज दोनों पर 32 बिट प्रक्रिया के रूप में चलाया जाएगा।

+0

ओपी की वास्तविक समस्या के लिए यह एक बेहतर जवाब है – piers7

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