2009-07-27 9 views
5

मेरे पास एक सीएलआर संग्रहीत प्रक्रिया है जो वीएस 2008 में बनाई गई असेंबली का संदर्भ देती है जो लिंक का उपयोग करती है। आइए इस असेंबली 'माईलिब' को कॉल करें।.NET 3.5 असेंबली एसक्यूएल 2005 सीएलआर का उपयोग करना?

मुझे अपने SQL 2005 डेटाबेस में 'MyLib' नहीं मिल रहा है। मैं निम्न कार्य करें:

CREATE ASSEMBLY [MyLib] 
    FROM 'C:\MyLib\bin\Release\MyLib.dll' 
WITH PERMISSION_SET = UNSAFE 
GO 

लेकिन मैं त्रुटि मिलती है:

Assembly 'MyLib' references assembly 'system.core, version=3.5.0.0, 
culture=neutral, publickeytoken=b77a5c561934e089.', which is not present 
in the current database. SQL Server attempted to locate and automatically 
load the referenced assembly from the same location where referring assembly 
came from, but that operation has failed (reason: 2(error not found)). Please 
load the referenced assembly into the current database and retry your request. 

वहाँ एसक्यूएल में नेट 3.5 विधानसभाओं के सभी प्राप्त करने के लिए 2005 CLR एक आसान तरीका है, की तुलना में मेरे लिखने अन्य प्रत्येक के लिए 'असीमित बनाएं' कमांड? क्या ऐसा करने का कुछ "सर्वोत्तम अभ्यास" तरीका है?

+0

आपको लगता है कि किसी व्यक्ति से मुसीबत ले लिया उनमें से बहुत कुछ के लिए एक बड़ी टी SQL स्क्रिप्ट बनाने के लिए और नेट पर पोस्ट करने के लिए (संस्करण 2.0 और 3.5 के लिए CLR एक ही है) ... लेकिन मुझे एक नहीं मिल रहा है :( – Thorarin

+0

प्रलेखन से: SQL सर्वर भी एक ही स्थान पर इस असेंबली की किसी भी निर्भर असेंबली को देखता है और उन्हें अपलोड भी करता है। – Suncat2000

उत्तर

2

बाहर चेक this thread। मूल रूप से आपको वैश्विक असेंबली कैश से स्वचालित रूप से लोड होने की बजाय लोड करने के लिए मैन्युअल रूप से नई असेंबली मिलनी पड़ती है।

+0

मीठे - बस उस धागे का पालन किया और यह काम करता है! बहुत बढ़िया :) –

+0

कोड को पोस्ट करने के लिए भूल गए जो इसे काम करता है: असीमित बनाएं [सिस्टम.कोर] \t 'सी: \ प्रोग्राम फ़ाइलें \ संदर्भ असेंबली \ माइक्रोसॉफ्ट \ फ्रेमवर्क \ v3.5 \ System.Core.dll' से PERMISSION_SET = UNSAFE जाओ एक बार ऐसा करने के बाद, 'MyLib' असेंबली पूरी तरह से काम किया। –

+0

भी भूल गया: ALTER [डेटाबेस] सेट ट्रस्टवॉर्नी चालू – Suncat2000

1

SQL Server 2005 v2.0.50727 सीएलआर के साथ भेज दिया गया - जो नहीं अभी तक LINQ शामिल है।

आप SQL 2005 सीएलआर असेंबली में LINQ का उपयोग करने में सक्षम नहीं होंगे - आपको .NET 2.0 असेंबली के मूल सेट पर चिपकने की आवश्यकता है।

आपकी तैनाती में सभी प्रासंगिक 3.5 सिस्टम असेंबली (यानी System.Linq, System.Data.Linq) को शामिल करने का एकमात्र पतला मौका होगा - वे सभी .NET 2.0 CLR पर आधारित हैं ताकि हो सकता है कि संभव हो - मैं व्यक्तिगत रूप से शायद कोशिश करने से परेशान नहीं होता, ऐसा लगता है कि बहुत अधिक काम और बहुत परेशानी है।

एसक्यूएल सर्वर 2008 आर 2 संभवतः एक नए सीएलआर के साथ जहाज की संभावना होगी (केवल मेरा अनुमान - अभी तक कोई आधिकारिक पुष्टि या घोषणा उपलब्ध नहीं है, AFAIK)।

मार्क

+0

यह प्रोजेक्ट वह है जिसे मैंने अभी ले लिया है और पिछला कोडर जोड़ना शुरू कर दिया है लिंक से सबकुछ लेकिन एसक्यूएल 2005 में असेंबली को फिर से पंजीकृत करने का प्रयास नहीं किया। यदि आप सही हैं तो मेरे पास काम करने का एक * बहुत * काम है। मैं चुपचाप उम्मीद कर रहा हूं कि आप गलत हैं (इसलिए कि मुझे काम का भार नहीं करना है), लेकिन मैं उस के लिए ज्यादा उम्मीद नहीं कर रहा हूं। –

+0

यदि आप थोरिनिन के पोस्ट में लिंक में धागे को देखते हैं, तो मुझे संदेह है कि आपको बहुत भाग्य मिलेगा :-( –

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