2009-06-24 12 views
16

मेरे विकास मशीन है विन XP प्रो 32 बिट और उत्पादन मशीन विंडोज सर्वर 2008 (64 बिट) आईआईएस 7. के साथ अपने विकास मशीन पर मैं ASP.NET संकलन करना चाहते है (का उपयोग करते हुए aspnet संकलक) 64 बिट बाइट कोड करने के लिए।संकलित ASP.NET 64 बिट के लिए

क्या कोई मुझे बता सकता है कि ऐसा कैसे करें? 64 बिट पर्यावरण पर 32 बिट एप्लिकेशन चलाने के लिए कृपया किसी भी तरह का सुझाव न दें।

मैं चाहता हूँ 64 बिट आवेदन 32 बिट मशीन पर संकलित की इतनी है कि जब इसे चलाता यह किसी भी अनुकरण के बिना 64 बिट हे/एस का पूरा फायदा ले जाएगा।

उत्तर

6

.net क्षुधा खुद को लक्ष्य मशीन पर्यावरण यह सोचते हैं कि आप विशेष रूप से 32-बिट मोड में संकलित करने के लिए नहीं चुना था के लिए फिर से लक्षित हो जाएंगे। यह परियोजना निर्माण विकल्पों के तहत पाया जा सकता है।

+1

सही पर है, बस सुनिश्चित करें कि आप एक विशिष्ट वास्तुकला के लिए अनुकूलन नहीं कर रहे हैं हो सकता है और आप पूरी तरह से तैयार किया जाना चाहिए। –

24

AnyCpu में लक्ष्य मंच छोड़ दो और .NET स्वचालित रूप से जब एक 64bit ऑपरेटिंग सिस्टम

स्पष्टीकरण पर निष्पादित 64 बिट पर मूल रूप से चलेंगे:

(यह बाहर एक टिप्पणी के रूप में शुरू किया, लेकिन मैंने सोचा कि यह दिलचस्प हो सकता है प्रश्न के लिए भी)

वास्तव में आप कभी भी एक विशेष वास्तुकला का संकलन नहीं करते हैं। आप हमेशा आईएल के लिए संकलित करते हैं।

यह जावा बाइटकोड की तरह कुछ है। और वह बाइटकोड 32 बिट और 64 बिट के लिए समान है।

वर्चुअल मशीन (.नेट फ्रेमवर्क) मशीन कोड का निष्पादित पर तो वास्तविक मशीन कोड के लिए आईएल संकलित (बस समय संकलन के माध्यम से) जबकि चल रहा है। तो, कोई फर्क नहीं पड़ता कि आप कहां संकलित करते हैं, आप हमेशा आईएल में खत्म हो जाएंगे जो थोड़ा-अज्ञानी है।

.NET में सेटिंग केवल आईएल में एक निर्देश है कि JIT (बस समय संकलक में) विशेष रूप से उपयोग करने के लिए 32 बिट/64 बिट बताता है। अपनी असेंबली में उस बिट को फ़्लिप करके आप इसे किसी भी कॉम्पू या x64 में पुन: संकलन के बिना निष्पादित कर सकते हैं।

यह सेटिंग केवल इस्तेमाल किया और मामले में जरूरत है आप मूल कोड के लिए बाहर फोन है कि थोड़ा-अनभिज्ञ नहीं है (जब COM घटकों के साथ बातचीत या पी कर/कॉल आह्वान)

+0

मैं aspnet_compiler के माध्यम से ASP.NET (फ़ाइल सिस्टम मोड और वेब अनुप्रयोग प्रोजेक्ट) संकलित नहीं कर रहा हूं (केवल .NET 2.0 32 बिट स्थापित है और इसलिए 32 बिट फ्रेमवर्क का उपयोग कर रहा है)। जो मुझे समझा गया वह यह है कि यदि मैं अपने उत्पादन मशीन में \ bin के अंतर्गत मौजूद सभी डीएलएस की प्रतिलिपि बनाता हूं तो यह बिना किसी अनुकरण के 64 बिट मोड में पूरी तरह से चलाएगा। मैं सिर्फ यह पुष्टि करना चाहता था कि 32 बिट मशीन पर एप्लिकेशन संकलित होने पर 64 बिट पर चलने पर कोई प्रदर्शन समस्या नहीं होनी चाहिए। चूंकि मेरे पास वेब एप्लिकेशन प्रोजेक्ट नहीं है, तो उस मामले में aspnet_compiler किसी भीCPU मोड में संकलित होगा ?? अग्रिम धन्यवाद –

8

विजुअल स्टूडियो 2013 में एक विकल्प नहीं है अब 64 बिट मोड में चलाने के लिए आईआईएस एक्सप्रेस (जिसे आमतौर पर डीबग के लिए उपयोग किया जाता है) निर्देशित करने के लिए।

यह Tools -> Options -> Projects and Solutions -> Web Projects -> Use the 64 bit version of IIS Express…

+1

इस उत्तर में आज मेरी समस्या हल हो गई। वोट पर जाएं, और महसूस करें कि यह दो साल पहले एफटीडब्ल्यू से मेरा जवाब है! –

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