2010-04-07 14 views
8

मैं Chilkat पुस्तकालय के साथ एक ASP.Net वेबसाइट (दृश्य स्टूडियो का प्रयोग करके) संकलित करने के लिए कोशिश कर रहा हूँ। संकलन इस त्रुटि के कारण विफल रहता है:x64 asp.net वेबसाइट को संकलित कैसे करें?

Could not load file or assembly 'ChilkatDotNet2, Version=9.0.8.0, Culture=neutral, PublicKeyToken=eb5fc1fc52ef09bd' or one of its dependencies. An attempt was made to load a program with an incorrect format.

मुझे बताया गया है कि इस त्रुटि मंच गैर अनुपालन के कारण होती है।

अजीब बात यह है कि हालांकि संकलन विफल रहता है, साइट एक बार एक ब्राउज़र से पहुँचा काम करता है। मेरा सिद्धांत यह है कि आईआईएस संकलन फ्रेमवर्क 64 (64 बिट) फ़ोल्डर से csc.exe कंपाइलर का उपयोग करता है जबकि विजुअल स्टूडियो फ्रेमवर्क (32 बिट) फ़ोल्डर से csc.exe कंपाइलर का उपयोग करता है। यदि यह वास्तव में है, एएसपी.Net साइटों के लिए 64 बिट कंपाइलर के साथ चलाने के लिए मैं अपने विजुअल स्टूडियो को कैसे कॉन्फ़िगर कर सकता हूं?

यह मेरा वर्तमान विकास विन्यास है:

  • विंडोज 7 (64)।
  • विजुअल स्टूडियो 2008 प्रो (पाठ्यक्रम का x86 ...)।
  • चिलकट लाइब्रेरी (x64)
  • आईआईएस/एएसपीनेट (x64)।

उत्तर

25

क्यों:
आपकी वेबसाइट (प्रबंधित भाग, संभावना यह गैर तीसरे पक्ष के सभी), 32 या 64-बिट मोड में संकलित नहीं है कम से कम जिस तरह से आप कर रहे हैं में नहीं विचारधारा। अंतर यह वेब सर्वर विशेष रूप से 32-बिट है के लिए है कि WebDevServer.exe (Cassini का एक संस्करण) है कि दृश्य स्टूडियो का उपयोग करता है। इसलिए, यह केवल 32-बिट संगत DLL लोड करता है।

एक 64 बिट मशीन पर IIS विन्यास सेटिंग्स पर निर्भर करता है, या तो 32 या 64 बिट मोड (64-बिट के लिए चूक) में चला सकते हैं, तो यह कोई परेशानी नहीं आपके आवेदन को लोड है।

समाधान: दुर्भाग्य से, वहाँ नहीं विकल्पों में से एक बहुत यहाँ I asked the same question a while ago कर रहे हैं। डीबगिंग के लिए आईआईएस का उपयोग करना आपकी सबसे अच्छी शर्त है। आप इसे सेट अप इस तरह:

  • वेब प्रोजेक्ट> सेटिंग
  • "वेब" टैब
  • सर्वर के तहत, दोनों डाल करने के लिए उपयोग स्थानीय आईआईएस वेब सर्वर
+0

वास्तव में, मैं दिखाई दे रही है ** संकलन ** ऐसी परियोजनाओं 64-बिट के लिए 64-बिट पर (जो ओ पी इंगित करने के लिए लग रहा था) के लिए असफल। (दृश्य स्टूडियो में ... फिर भी साइट आईआईएस में ठीक है या 64-बिट कैसिनिडेव का निर्माण) कुछ भी इंतजार करने से ज्यादा निराशाजनक नहीं है जब तक कि आपका वेब पेज यह पता लगाने के लिए लोड न हो कि 'lint x = 1;' int x होना चाहिए = 1; ' –

0

समाधान का चयन किया जाता है GAC में DLLs (64 & 86 DLLs) की और जब 64 या 86 DLL उपयोग करने के लिए प्रत्येक आवेदन गतिशील निर्णय लेते हैं (बेशक आप अपनी परियोजना में GAC DLL संदर्भित करने के लिए होगा)।

मैं व्यक्तिगत रूप से ChilkatDotNet2 के डेवलपर के साथ चर्चा की है और यह एक समाधान हम दोनों पर सहमति व्यक्त की है।

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