लोड नहीं कर सका, मैं आंतरिक उपयोग के लिए एक विजुअल स्टूडियो 2012 एक्सटेंशन लिख रहा हूं, जिसके लिए सभी असेंबली का मजबूत नाम है। मैं RestSharp (और कुछ अन्य डीएलएस) पर निर्भर हूं, और चूंकि इसे दृढ़ता से नामित नहीं किया गया है, इसलिए मैं this का पालन करके इसमें एक मजबूत नाम जोड़ रहा हूं। सब कुछ प्रक्रिया के आउटपुट के अनुसार काम करता है, और यहां तक कि विजुअल स्टूडियो का दावा है कि अगर मैं प्रोजेक्ट संदर्भों में RestSharp.dll के गुणों को देखता हूं तो इसे दृढ़ता से नामित किया जाता है। हालांकि, जब मैं अपने एक्सटेंशन का उपयोग करने के लिए जाना मैं एक FileLoadException का दावा मिलती है:एक तृतीय पक्ष असेंबली का जोरदार नामकरण - फ़ाइल या असेंबली
Could not load file or assembly 'RestSharp, Version=104.1.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. A strongly-named assembly is required. (Exception from HRESULT: 0x80131044)
कैसे उसके चारों ओर इस या काम को हल करने पर कोई विचार?
'PublicKeyToken = null' से, यह एक * अहस्ताक्षरित * विधानसभा के संस्करण के लिए देख रहा है। मैं RestSharp के आपके सभी संदर्भों को हटा दूंगा, और उन्हें हस्ताक्षरित असेंबली में दोबारा जोड़ दूंगा। – vcsjones
प्री-बिल्ड इवेंट में मैं ildasm ilasm चरण करता हूं और फिर प्रोजेक्ट का निर्माण करता हूं। चूंकि प्रोजेक्ट निर्दिष्ट पथ से डीएलएल का संदर्भ दे रहा है, जहां नया हस्ताक्षरित डीएल है, क्या उसके पास हस्ताक्षरित संस्करण नहीं होना चाहिए? क्या परियोजना संदर्भ वास्तव में हस्ताक्षर किए जाने चाहिए? मैंने माना होगा कि निर्माण के समय हस्ताक्षरित डीएलएल पर्याप्त होगा। – Adam
'क्या परियोजना संदर्भ वास्तव में हस्ताक्षरित होना चाहिए?' हां। तथ्य के बाद इसे हस्ताक्षर करना पर्याप्त नहीं है। असेंबली आपके असेंबली के लिए प्रकट होता है * संदर्भ * रेस्टशर्प मजबूत नाम (या एक की अनुपस्थिति) सहित पूरी तरह से योग्य असेंबली नाम का ट्रैक रखता है। – vcsjones