2011-07-05 46 views
12

Bir CLR TVF (tablo değeri işlevi) dağıtmaya çalışıyorum. Kodda bazı JSON dizesini ayrıştırmak için JavaScriptSerializer kullanıyorum, bu yüzden System.Web.Extensions dll'ye başvuruyorum ve sorunlarım orada başlıyor.Sql Server CLR yükleme derlemesi başarısız oldu

Projesi ince oluşturur, ancak aşağıdaki hatayı alırsınız Dll kayıt çalıştığınızda:

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\System.Web.Extensions.dll

ben kopya yükü ayarlayabilirsiniz

:

Assembly 'my_assembly_name' references assembly 'system.web.extensions, version=4.0.0.0, culture=neutral, publickeytoken=31bf3856ad364e35.', 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(The system cannot find the file specified.)). Please load the referenced assembly into the current database and retry your request.

ben den System.Web.Extensions başvurulan doğru ya da el ile derleme kopyalayın, ancak başvuru hataları daha derinlere girin -

Assembly 'my_assembly_name' references assembly 'system.servicemodel.activation, version=4.0.0.0, culture=neutral, publickeytoken=31bf3856ad364e35.', 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(The system cannot find the file specified.)). Please load the referenced assembly into the current database and retry your request.

E Webthing.txtensions.dll başvurulan kadar çok güzel çalışıyor. Hedef Çerçeve .NET'dir. 4.

Herhangi bir fikir/çözüm var mı?

+0

.Net 4 Framework, SQL Server makinesinde yüklü mü? –

+0

Evet, dediğim gibi, System.Web.Extensions.dll başvuruyorsa, her şey iyi çalışıyor. – Klark

cevap

3

.NET Framework CLR'nin SQL Server 2005/2008 ile ne yazık ki tümleştirilmesi, yalnızca çerçevenin sınırlı bir alt kümesidir ve System.Web.Extensions, desteklenen bir derleme/ad alanı gibi görünmemektedir. desteklenen meclisleri tam listesi MSDN göz atın

: http://msdn.microsoft.com/en-us/library/ms403279.aspx

+0

Gerçekten üzüldüm. Teşekkürler, JSON için farklı bir ayrıştırıcı buldum, böylece sorunu çözdüm. – Klark

+0

İlgi alanı nedir, çözümleyici neydi Json.Net? – Kane

+0

nope, System.Web.Extensions.dll dosyasından JavaScriptSerializer kullanıyorum. – Klark

14

belgelerine acording, herhangi NET montaj başvurulabilir ancak her bağımlı montaj da "Programlanabilirlik görünür veritabanında (kayıtlı olmalıdır - SQL Server Manager'da "düğümler". SQL Server veritabanında bağımlı derlemeler mevcut olduğunda, Visual Studio'da Referans Ekle iletişim penceresinde bulunur.

Aşağıdaki bu SQL kodu çalışır. Ben System.Web.dll takımını ihtiyaç vardı (sen benim 2005, SQL olduğu doğru sürümü gerekir 64 bit)

CREATE ASSEMBLY [System.Web] AUTHORIZATION dbo 
FROM 'c:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\System.web.dll' 
WITH PERMISSION_SET = UNSAFE 

sistem otomatik bağımlı derlemelerin kayıt çalışacaktır ancak aynı dizin olarak gelen bunu sadece yapabilirsiniz kayıt yapmaya çalıştığınız dosya. Benim durumumda ayrıca

System.Configuration.Install  
System.Design 
System.DirectoryServices  
System.DirectoryServices.Protocols 
System.Drawing 
System.Drawing.Design 
System.EnterpriseServices 
System.Runtime.Remoting 
System.Runtime.Serialization.Formatters.Soap  
System.ServiceProcess 
System.Web.RegularExpressions 
System.Windows.Forms 

Benim sistemde

yüzden sizin için System.Web.Extensions.dll ithal test edemez 3.5 Framework kullanıyor ... System.Web düzgün çalışması için veritabanında aşağıdaki derlemeler kayıtlı ancak başka bir klasörden kayıt için başka derlemeler gerektirebilir ve bir 4.0 derleme olduğundan, farklı bir klasörde bulunan 2.0 veya 3.5 derlemelerine başvurmak olabilir.

Çalıştığınız işi almak için ithal edilen çok sayıda derleme listesiyle sonuçlanacağından şüpheleniyorum, ancak yapılması kesinlikle mümkün. İşlem, muhtemelen tüm bağımlı belleklerin bulunduğu bir klasöre sahip olarak daha kolay yapılabilir ve buradan kaydedilebilir.

İlgili konular