मैं इस कोड को कंसोल एप्लिकेशन में लिख रहा हूं जो .NET Framework 4 क्लाइंट प्रोफ़ाइल को लक्षित करता है।log4net 1.2.10 को System.Web की आवश्यकता क्यों है?
this.container.AddFacility<LoggingFacility>(
f => f.LogUsing(LoggerImplementation.Log4net));
जब यह चलता है, तो यह एक प्रकार की रूपांतरण त्रुटि में विफल रहता है।
नहीं बदला जा सका 'Castle.Services.Logging.Log4netIntegration.Log4netFactory, Castle.Services.Logging.Log4netIntegration, संस्करण = 2.5.1.0, संस्कृति = तटस्थ, PublicKeyToken = 407dd0808d44fbdc' से System.Type के लिए - हो सकता है कि प्रकार नहीं पाया जा सका
इसका कारण यह है Castle.Services.Logging.log4netIntegration विधानसभा उत्पादन फ़ोल्डर में प्रतिलिपि नहीं है। रनटाइम-केवल निर्भरता के रूप में, यह निर्माण को तोड़ नहीं देता है।
बिल्ड प्रक्रिया को देखते हुए, मैंने पाया कि यह log4net या कैसल सुविधा असेंबली की प्रतिलिपि नहीं बना रहा क्योंकि वे System.Web पर निर्भर हैं जो क्लाइंट प्रोफ़ाइल में उपलब्ध नहीं है। मानक प्रोफ़ाइल में बदलना मतलब है कि यह निर्भरता उपलब्ध है और सुविधा को जोड़ा जा सकता है।
ऐसा क्यों किया जाता है? इससे कोई फर्क पड़ता है कि मैं किसी सर्वर पर शेड्यूल किए गए कार्य के रूप में उपयोग किए जाने वाले कंसोल एप्लिकेशन में क्लाइंट प्रोफ़ाइल को लक्षित नहीं कर रहा हूं?
धन्यवाद ब्रोनुम्स्की। –
अभी डाउनलोड की गई नवीनतम बाइनरी (1.2.11) और इसमें 4.0 क्लाइंट प्रोफाइल के साथ \ bin \ net-cp \ 4.0 \ रिलीज़ में एक संस्करण संगत है। बस इसका परीक्षण किया और एक आकर्षण की तरह काम करता है! – SvenG