2010-12-23 25 views
19

मैं एक जावा डेवलपर हूं और अभी कुछ परियोजना विकसित करने के लिए सी # सीखना शुरू कर दिया है। मुझे यह देखने में प्रसन्नता हो रही है कि मेरे द्वारा काम करने के लिए उपयोग किए जाने वाले कई जावा ढांचे (log4j, चींटी, हाइबरनेट इत्यादि) में उनके .NET संस्करण (log4net, nant, nhibernate) हैं।लॉग 4नेट संदर्भ असेंबली निर्भरता समस्या

मैं सिर्फ एक प्रोजेक्ट बनाया हुआ है और उस में log4net विधानसभा संदर्भ डालने की कोशिश की, लेकिन मैं निम्नलिखित चेतावनी (पीछा log4net नाम स्थान और वर्गों की पहचान करने में विफलता को सूचित 4 त्रुटियों से) हो रहा है:

संदर्भित क्योंकि यह "System.Web, संस्करण = 4.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = b03f5f7f11d50a3a" जो वर्तमान में लक्षित ढांचे में नहीं है "पर एक निर्भरता है विधानसभा" log4net " हल नहीं किया जा सकता है। NETFramework, संस्करण = v4.0, प्रोफाइल = क्लाइंट "। कृपया लक्षित फ्रेमवर्क में असेंबली के संदर्भों को हटाएं या अपनी परियोजना को पुन: लक्षित करने पर विचार करें।

मैंने System.Web.ApplicationServices और System.Web.Services का संदर्भ जोड़ा लेकिन यह काम नहीं कर रहा है। इस निर्भरता मुद्दे को हल करने में कोई मदद की सराहना की जाएगी।

धन्यवाद

उत्तर

28

अद्यतन:

आप अभी भी इस त्रुटि हो रही है, तो आप एक बाहर के तारीख log4net के संस्करण का उपयोग कर रहे हैं और आप current version को अद्यतन करने के जो करता है पर विचार करना चाहिए, पूर्ण .NET 4.0 ढांचे की आवश्यकता नहीं है। टिप्पणी में इसे इंगित करने के लिए @Philippe पर धन्यवाद।


आपका परियोजना .NET 4.0 ग्राहक प्रोफ़ाइल जो System.Web शामिल नहीं है संदर्भित कर रहा है; आपको वास्तव में पूर्ण ढांचे का संदर्भ देने की आवश्यकता है।

दिशानिर्देशों के लिए एमएसडीएन पर How To: Target a Specific .NET Framework Version or Profile देखें।

  1. दृश्य स्टूडियो में, इस परियोजना आप बदलना चाहते हैं खोलें।
  2. समाधान एक्सप्लोरर में प्रोजेक्ट पर राइट-क्लिक करें और फिर गुण क्लिक करें।
  3. प्रोजेक्ट डिज़ाइनर में, निम्नानुसार लक्ष्य फ्रेमवर्क सूची का पता लगाएं।

    • विजुअल बेसिक परियोजनाओं के लिए, संकलित टैब पर क्लिक करें और फिर क्लिक करें उन्नत संकलित विकल्प। लक्ष्य फ्रेमवर्क सूची उन्नत कंपाइलर सेटिंग्स संवाद बॉक्स में है।
    • विज़ुअल सी # प्रोजेक्ट्स के लिए, लक्ष्य फ्रेमवर्क सूची प्रोजेक्ट डिज़ाइनर का एप्लिकेशन टैब पर है। अधिक जानकारी के लिए, एप्लिकेशन पेज, प्रोजेक्ट डिज़ाइनर (सी #) देखें।
    • विजुअल एफ # परियोजनाओं के लिए, लक्ष्य फ्रेमवर्क सूची प्रोजेक्ट डिज़ाइनर के अनुप्रयोग टैब पर है।
  4. लक्ष्य फ्रेमवर्क सूची में, .नेट फ्रेमवर्क संस्करण या प्रोफ़ाइल को चुनना चाहिये। जब आप ठीक क्लिक करते हैं, तो प्रोजेक्ट अनलोड करता है और फिर एकीकृत विकास पर्यावरण (आईडीई) में पुनः लोड करता है। प्रोजेक्ट अब आपके द्वारा चुने गए .NET Framework संस्करण को लक्षित करता है।

संभवतः भी ब्याज की Troubleshooting .NET Framework Targeting Errors है।

+0

यह बहुत उपयोगी था। विजुअल स्टूडियो 2010 को स्थापित करने के बाद मैंने बनाई गई पहली परियोजना को डिफ़ॉल्ट रूप से क्लाइंट प्रोफाइल में लक्ष्य सेट किया है – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

+0

यदि ग्राहक प्रोफ़ाइल को लक्षित करना मान्य था, तो मैसीज और 101100 के उत्तर बेहतर हैं: log4net के संस्करण का उपयोग करें जो system.web पर निर्भर नहीं है (1.2 ।1 1)। – Philippe

+0

टिप्पणी करने के लिए धन्यवाद, @ फिलिप - मैंने जवाब अपडेट किया है। –

6

प्रोजेक्ट गुण संवाद में "नेट 4.0 फ्रेमवर्क क्लाइंट प्रोफ़ाइल" नहीं, "नेट 4.0 फ्रेमवर्क" को लक्षित करने के लिए अपनी प्रोजेक्ट सेट करें।

1

बस छोटा अपडेट। यह समस्या लगभग 3 साल पहले लॉग कर दी गई है और इस महीने को ठीक किया गया था। तो log4net (1.2.10 के बाद) का अगला संस्करण क्लाइंट प्रोफाइल फ्रेमवर्क के साथ काम करने के लिए ठीक होना चाहिए।

https://issues.apache.org/jira/browse/LOG4NET-174

0

एक संदर्भ के रूप में भविष्य उपयोगकर्ताओं के लिए:

मत भूलना भी ढांचे आप लक्षित स्थापित करने के लिए! (मैंने, स्वयं, सोचा था कि सभी फ़ोल्डर्स (v4.0x, v2.0X, आदि) वहां थे, मेरे पास सभी ढांचे थे। नहीं! यह पता चला है कि मेरे पास केवल .NET 4.0 क्लाइंट प्रोफ़ाइल स्थापित है अपने सिस्टम और System.Web नहीं पा सके, भले ही सही ढांचे को निशाना बनाया गया था

वैसे भी, यहाँ की जरूरत .नेट फ्रेमवर्क डाउनलोड:। .NET Frameworks Microsoft Downloads

1

आप संस्करण 1.2.11 के साथ इस त्रुटि प्राप्त होती है और आप अपने प्रोजेक्ट के ढांचे को बदलना नहीं चाहते हैं, बस क्लाइंट प्रोफाइल के लिए संस्करण स्थापित करें। यह बाइनरी वितरण में net-cp फ़ोल्डर में है।

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