आप जो करने का प्रयास कर रहे हैं वह SQL सर्वर के CLR होस्ट द्वारा समर्थित नहीं है। SQL सर्वर के भीतर CLR SQL सर्वर को अस्थिर करने से रोकने के लिए अत्यधिक प्रतिबंधित है क्योंकि यह OS पर चलने वाले ऐप्स की तुलना में अलग तरह से काम करता है। इसलिए, डीएलएल का एक बहुत ही सीमित सेट है जो समर्थित हैं (यानी काम करने के लिए सत्यापित और .NET के अपडेट में काम करते रहने की गारंटी)। WindowsBase उनमें से एक नहीं है इसलिए आपको इसे मैन्युअल रूप से UNSAFE
. के रूप में लोड करना होगा एसक्यूएल सर्वर में। लेकिन यह आपको या तो उस समस्या के साथ छोड़ देता है जिसे आप मुख्य जीएसी बदलते संस्करण में चलाते हैं (डीएलएल जो जीएसी और एसक्यूएल सर्वर के सीएलआर होस्ट के बीच आम हैं, एक ही संस्करण होना चाहिए), या इससे भी बदतर, अगर डीएलएल "मिश्रित" हो जाता है (अप्रबंधित सी ++ और प्रबंधित कोड दोनों) और अब "शुद्ध" नहीं है। उस स्थिति में नया संस्करण लोड नहीं होगा और पुराने संस्करण को "गलत संस्करण" त्रुटि मिलती है, इसलिए आपको कुछ काम करना है।
अधिक विस्तृत जानकारी के लिए, कृपया निम्नलिखित लेख/दस्तावेज देखें:
- SQL Server 2005 समर्थित .NET Framework पुस्तकालय
- एसक्यूएल सर्वर 2008/2008 आर2/2012/2014 समर्थित .NET फ्रेमवर्क लाइब्रेरी
- समर्थन नीति SQL सर्वर CLR-होस्टेड परिवेश में परीक्षण न किए गए .NET Framework असेंबलियों के लिए
- जब आप सीएलआर रूटीन निष्पादित करते हैं या SQL सर्वर में असेंबली का उपयोग करते हैं तो त्रुटि संदेश:"होस्ट स्टोर में असेंबली का जीएसी में असेंबली से भिन्न हस्ताक्षर होता है। (HRESULT से अपवाद:0x80131050)"
लिंक का वह सेट मेरे द्वारा लिखे गए एक लेख के "अतिरिक्त पठन" खंड से लिया गया है:सीढ़ी से SQLCLR लेवल 5:डेवलपमेंट (एसक्यूएल सर्वर के भीतर .NET का उपयोग करना) ।
SQLCLR के साथ सामान्य रूप से काम करने के बारे में अधिक जानकारी के लिए, कृपया मेरी साइट पर जाएँ:SQLCLR Info