Bir clr yordam yürütmek veya sql Server'da bir derleme kullandığınızda hata iletisi: "ana bilgisayar deposundaki derlemenin var. farklı bir derleme imzası GAC'de (HRESULT özel durum: 0x80131050) "

Makale çevirileri Makale çevirileri
Makale numarası: 949080 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Belirtiler

Aşağıdaki senaryoları göz önünde bulundurun.

Senaryo 1

Başvuran bir ortak dil çalışma zamanı (clr) yordamı oluşturma bir Microsoft .NET Framework derleme. .net Framework derleme içinde belgelenmiştir. Bilgi Bankası makalesi 922672. Daha sonra .NET Framework 3.5 veya .NET Framework 2.0 tabanlı bir düzeltme yükleyin.

Senaryo 2

Bir derleme oluşturmak ve sonra Microsoft sql Server veritabanında derleme kaydolun. Daha sonra genel derleme önbelleği (gac) derleme farklı bir sürümünü yükleyin.

clr yordamı yürütme veya sql Server'da derlemeden Bu senaryolardan birini kullandığınızda, aşağıdakine benzer bir hata iletisi alırsınız:

Sunucu: Msg 6522, Düzey 16, State 2, 1 satır
.net Framework Kullanıcı tanımlı alışılmış veya toplama yürütülürken hata oluştu 'getsid':

System.IO.FileLoadException: dosya veya derleme yüklenemedi ' System.DirectoryServices, sürüm 0, Culture = neutral, = PublicKeyToken b03f5f7f11d50a3a ' ya da bağımlılıklarından biri. Ana bilgisayar derleme Mağaza GAC'de derlemeden farklı bir imza var. (HRESULT özel durum: 0x80131050)

System.IO.FileLoadException:

Neden

clr derleme yüklendiğinde, clr aynı derlemenin GAC'de olduğunu doğrular. clr aynı derlemenin GAC'de olup olmadığını doğrular , Bu derlemeler modülü sürüm kimlikleri (MVIDs) eşleşir. Yoksa bu MVIDs derlemeler eşleşmiyor, aldığınız hata iletisinin Belirtilenlerden "Belirtiler" bölümü.

Derleyiciye derlenir, MVID, derleme değişir. Bu nedenle, .NET Framework, .NET Framework derlemeleri güncelleştirmesi farklı MVIDs sahip Bu derlemeler yeniden derlenir çünkü. Buna ek olarak, Eğer kendi derleme güncelleştirmek, derleme farklı versiyonlarla. Bu nedenle, derleme de farklı bir sahiptir MVID.

Pratik Çözüm

Geçici Çözüm 1

Senaryo 1 "Belirtiler" bölümünde geçici bir çözüm bulmak için sql Server'daki .NET Framework derlemeleri el ile güncelleştirmeniz gerekir. Bunu yapmak için Derleme alter ifadesini kullanın. noktası Yeni .NET Framework derleme sürümü Aşağıdaki klasör:
%Windir%\Microsoft.NET\Framework\Sürüm
NotSürüm temsil eder .net Framework sürümü olan yüklendiğinde veya güncelleştirildiğinde.

Geçici Çözüm 2

Senaryo çalışmak için 2 inç "Belirtiler" bölümünde, derlemede güncelleştirmek için Derleme alter deyimini kullanın. Veritabanı.

Sorun hala devam ediyorsa Bunu yaptıktan sonra derlemenin veritabanından bırakın ve sonra Kaydet yeni sürümü derleme Veritabanı.

Durum

Microsoft listelenen Microsoft ürünlerinde bir sorun olduğunu onaylamıştır "Aşağıdakilere uygulanır" bölümünde.

Daha fazla bilgi

922672 Bilgi Bankası makalesinde belgelenmemiş .NET Framework derlemeler kullanmanızı önermeyiz. Bilgi Bankası makalesi 922672 sql Server clr barındırılan ortamında sınanmış olan derlemeleri listeler.

Daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
922672 İlke sınanmamış .NET Framework derleme içinde sql Server clr barındırılan ortamı için destek

clr yordamları açıklaması

clr yordamları dahil et Aşağıdaki nesneler kullanarak uygulanır sql Server ile .NET Framework clr tümleştirme:
  • Skalar değerli kullanıcı tanımlı işlevler (scalar UDF'leri)
  • Tablo deerli kullanıcı tanımlı işlevler (TVFs)
  • Kullanıcı tanımlı yordamları (UDPs)
  • Kullanıcı tanımlı Tetikleyicileri
  • Kullanıcı tanımlı veri türleri
  • Kullanıcı tanımlı toplamları

.net Framework 3. 5'i yükledikten sonra güncelleştirmek için derlemeleri

.net Framework 3. 5'i yükledikten sonra alter kullanmanız gerekir DERLEME deyimi aşağıdaki derlemelere güncelleştirmek için:
  • Accessibility.dll
  • AspNetMMCExt.dll
  • Cscompmgd.dll
  • IEExecRemote.dll
  • IEHost.dll
  • IIEHost.dll
  • Microsoft.Build.Conversion.dll
  • Microsoft.Build.Engine.dll
  • Microsoft.Build.Framework.dll
  • Microsoft.Build.Tasks.dll
  • Microsoft.Build.Utilities.dll
  • Microsoft.CompactFramework.Build.Tasks.dll
  • Microsoft.JScript.dll
  • Microsoft.VisualBasic.Vsa.dll
  • Microsoft.Vsa.dll
  • Microsoft.Vsa.Vb.CodeDOMProcessor.dll
  • Microsoft_VsaVb.dll
  • Sysglobl.dll
  • System.Configuration.Install.dll
  • System.Design.dll
  • System.DirectoryServices.dll
  • System.DirectoryServices.Protocols.dll
  • System.Drawing.dll
  • System.Drawing.Design.dll
  • System.EnterpriseServices.dll
  • System.Management.dll
  • System.Messaging.dll
  • System.Runtime.Serialization.Formatters.Soap.dll
  • System.ServiceProcess.dll
  • System.Web.dll
  • System.Web.Mobile.dll
  • System.Web.RegularExpressions.dll
Bu derlemeleri aşağıdaki klasörde bulunur:
%Windir%\Microsoft.NET\Framework\v2.0.50727

Bir derleme koyduktan sonra kullanıcı tanımlı veri türleri veri koruma

sql Server bir kullanıcı tanımlı veri türünü kullanan bir derleme sürüklerseniz, verileri korumak için aşağıdaki yöntemlerden birini kullanabilirsiniz.

Aşağıdaki senaryo olduğunu varsayalım:
  • Adı olan bir derleme oluşturmak MyAssembly.dll.
  • MySource.vb derleme başvuruları System.DirectoryServices.dll derlemesi.
  • Adı olan bir kullanıcı tanımlı veri türüne sahip MyDateTime.
  • MyAssembly.dllMyDateTime veri türünü kullanır bütünleştirilmiş kod.
  • MyTable adı olan bir tablo oluşturmuş olursunuz.
  • Tablom tablo veri MyDateTime veri içerir yazın.

Yöntem 1: bcp.exe yardımcı programını kullanın

  1. Kopyalanacak –n anahtarıyla birlikte Bcp.exe yardımcı programını kullanın bir dosyaya MyTable tablosundaki verileri. Örneğin, çalıştırın bir komut isteminde aşağıdaki komutu:
    bcp MyDatabase.dbo.MyTable out C:\MyFile.bcp -n –SSQLServerName  -T
  2. İçinde sql Server Management Studio'da aşağıdaki adımları izleyin:
    1. Tablom tablo bırakma.
    2. MyDateTime veri türü bırak.
    3. System.DirectoryServices.dll bırak bütünleştirilmiş kod.
    4. MySource.vb derleme bırak.
  3. İçinde sql Server Management Studio'da aşağıdaki adımları izleyin:
    1. System.DirectoryServices.dll Kaydet bütünleştirilmiş kod.
    2. MySource.vb derleme kaydettirin.
    3. MyDateTime veri türü oluşturun.
    4. Aynı tablo yapısını olan yeni bir tablo oluşturun Tablom tablo.
  4. –N geçiş Bcp.exe yardımcı programını kullanın veri dosyasından MyTable tabloya aktarabilirsiniz. Örneğin, çalıştırın bir komut isteminde aşağıdaki komutu:
    bcp MyDatabase.dbo.MyTable in C:\MyFile.bcp -n –SSQLServerName  -T

Yöntem 2: Insert kullanın... select deyimi

MyDateTime veri türü 9 bayt depolama kaplayan varsayalım.
  1. sql Server Management Studio, yeni bir tablo oluşturun Aşağıdaki komutu çalıştırarak VARBINARY(9) veri türünde bir sütun içerir. Deyim:
    CREATE TABLE TempTable (c1 VARBINARY(9))
  2. Aşağıdaki komutu çalıştırın Ekle... SEÇİN doldurmak için deyimi TempTable Tablo:
    INSERT INTO TempTable SELECT CAST(c1 as VARBINARY(9)) FROM MyTable
  3. İçinde sql Server Management Studio'da aşağıdaki adımları izleyin:
    1. Tablom tablo bırakma.
    2. MyDateTime veri türü bırak.
    3. System.DirectoryServices.dll bırak bütünleştirilmiş kod.
    4. MySource.vb derleme bırak.
  4. İçinde sql Server Management Studio'da aşağıdaki adımları izleyin:
    1. System.DirectoryServices.dll Kaydet bütünleştirilmiş kod.
    2. MySource.vb derleme kaydettirin.
    3. MyDateTime veri türü oluşturun.
    4. Aynı tablo yapısını olan yeni bir tablo oluşturun Tablom tablo.
  5. Aşağıdaki komutu çalıştırın Ekle... SEÇİN doldurmak için deyimi Tablom Tablo:
    INSERT INTO MyTable SELECT c1 FROM TempTable

Referanslar

Derleme sürümü hakkında daha fazla bilgi için ziyaret edin aşağıdaki Microsoft Developer Network (msdn) Web sitesi:
http://msdn2.microsoft.com/en-us/library/51ket42z (vs.80) .aspx
İçin bir derleme güncelleştirme hakkında daha fazla bilgi için aşağıdaki msdn Web ziyaret edin Site:
http://msdn2.microsoft.com/en-us/library/ms186711.aspx
İçin bir derleme bırakma hakkında daha fazla bilgi için aşağıdaki msdn Web ziyaret edin Site:
http://msdn2.microsoft.com/en-us/library/ms177514.aspx
İçin bütünleştirilmiş bir sql Server 2005 veritabanına kaydettirme hakkında daha fazla bilgi aşağıdaki msdn Web sitesini ziyaret edin:
http://msdn2.microsoft.com/en-us/library/ms189524.aspx
İçin Bcp.exe yardımcı programı hakkında daha fazla bilgi için aşağıdaki msdn Web sitesini ziyaret edin:
http://msdn2.microsoft.com/en-us/library/ms162802.aspx

Özellikler

Makale numarası: 949080 - Last Review: 7 Ocak 2013 Pazartesi - Gözden geçirme: 1.0
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Workgroup
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL 2005 Server Workgroup
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
Anahtar Kelimeler: 
kbexpertiseadvanced kbtshoot kbprb kbmt KB949080 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir: 949080

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com