Microsoft hesabıyla oturum açın
Oturum açın veya hesap oluşturun.
Merhaba,
Farklı bir hesap seçin.
Birden çok hesabınız var
Oturum açmak istediğiniz hesabı seçin.

Hata #: 490 (SQL düzeltmesi)

Özet

Yükseltme veya indirgeme bütünleştirilmiş bir ortak dil çalışma zamanı (CLR) nesnesi bir Microsoft SQL Server 2005 örneği için çalıştığınızda, başvurulan derlemelerin derleme meta verilerde sürüm değiştiremezsiniz. Ayrıca, bir kesin adlandırılmış derleme CLR nesnesi için kullanıyorsanız, derleme ALTER deyimini kullanarak derleme indirgeyemezsiniz.

GİRİŞ

Bu makalede nasıl yükseltmeli ya da bütünleştirilmiş olan başvuru yapılan bir derleme CLR nesnesi içinde SQL Server 2005 örneği için eski sürümü açıklanır.

Daha fazla bilgi

Nasıl yükseltme veya indirgeme bir derleme

SQL Server 2005'te, yükseltme veya eski bir kesin adla oluşturulmamış tek başına bir derleme sürümü için ALTER ASSEMBLY deyimi kullanabilirsiniz. Bir kesin adlandırılmış derleme yükseltebilirsiniz ancak derleme ALTER ASSEMBLY deyimi kullanarak indirgeyemezsiniz.

Yükselttikten veya derleme aşağıdaki senaryoda eski sürümü:

  • Derleme A CLR nesnesinin bir örneği oluşturulur. Başvuru yapılan bir derleme derlemesi vardır. B. derleme derlemedir

  • B derleme başvuru yapılan bir derleme yoktur.

  • B. derleme farklı bir sürümüne başvurması için A derleme yeniden derleyin

Bu senaryoda, derleme B'ye yeni bir sürüme yükseltmek için ALTER ASSEMBLY deyimi kullanabilirsiniz. B derleme bir kesin adlandırılmış derleme değil, eski bir sürüm B derlemesine eski sürümü. Ancak, yükseltme veya indirgeme derlenmiş sürümü A derleme ALTER ASSEMBLY deyimini kullanamazsınız.

Bu davranış, derleme a oluşturduğunuzda SQL Server CLR fusion ilkesi oluşturur nedeniyle oluşur Bu CLR fusion İlkesi derleme B A gerçek derleme B. SQL Server sürümüne yükseltirken veya başka bir sürümünü B derlemesine eski sürümü çalışma zamanında derleme B'ye yeni sürümü yükler derlemesinin meta sürümü otomatik olarak eşler. Derleme A derleme B. özgün sürümüne başvuran olsa da bu davranış oluşur. Ancak, yükseltme veya derleme A, B derlemedeki meta verileri yeni bir sürümünü içeriyorsa, ALTER ASSEMBLY deyimi başarısız olur ve aşağıdakine benzer hata iletileri alıyorsunuz, derleme A eski sürümü için çalıştığınızda:

Hata iletisi 1

Msg 6529, düzey 16, State 1, satır 1

'RefAsm' başvurulan derlemenin kimliği değiştiği için ALTER derleme başarısız oldu. Sürüm adı ve ortak anahtar değişmemiştir emin olun.

Hata iletisi 2

Msg 6282, düzey 16, State 1, satır 1

Başvurulan derlemeler değiştirir ALTER derleme başarısız oldu. Başvurulan derleme listesi aynı kalmalıdır.

Yükseltme veya indirgeme derleme

Notlar

  • Aşağıdaki adımları yükseltme veya "yükseltme veya indirgeme bir derleme nasıl" bölümünde anlatılan senaryosunda derleme A eski sürümü.

  • Bu örnek, iki derleme sürümü 1.0.0.0 hem derlemeler olduğunu varsayar hem de C# ' ta yazılır. Bu adımları izlediğinizde, derleme A ve B derleme sürüm 2.0.0.0'ı yükseltmeye çalıştığınızda.

Yükseltme veya derleme A eski sürümü için aşağıdaki adımları izleyin.

  1. Derleme B'ye 1.0.0.0 sürümü bir klasöre yedekleyin.

  2. Değiştirin ve ardından sürüm 2.0.0.0'ı B derlemesine yeniden derleyin.

  3. SQL Server 2005'te derleme B'ye yükseltmek için ALTER ASSEMBLY deyimi kullanın.

  4. Değiştirin ve sonra A derleme sürüm 2.0.0.0'ı için yeniden derleyin. Bu, 1. adımda oluşturduğunuz yedek B derlemesinden 1.0.0.0 sürümüne başvuru yaptığınızda. Bunu yapmak için derleyici Csc.exe aracına/Reference anahtarıyla birlikte kullanın. Örneğin, aşağıdaki komutu kullanın:

    CSC/target: library/out:AssemblyA.dll AssemblyA.cs AssemblyInfo.cs/Reference: "BackupFolder\AssemblyB.dll"Not: Derleme B A derlemesinin meta dosyasının sürüm numarasını doğrulamak için derleme A Ildasm.exe yardımcı programını kullanarak açın. Daha sonra başvuru yapılan bir derleme bildirimi bölümü altında meta veri bilgilerini doğrulayın.

  5. SQL Server 2005'te derleme A yükseltmek için ALTER ASSEMBLY deyimi kullanın.

Nasıl bir kesin adlandırılmış derleme eski sürümü

Bir kesin adlandırılmış derleme CLR nesnesi için kullanıyorsanız, SQL Server 2005 derlemeleri indirgeme derleme ALTER deyimini kullanarak desteklemez. Bir derlemenin sürümü derleme ALTER deyimini kullanarak eski sürümü çalışırsanız, aşağıdakine benzer bir hata iletisi alırsınız:

Msg 6579, düzey 16, State 1, satır 1
Derleme alter ' Asm1, sürüm 1.1.0.0, culture = bağımsız, publickeytoken = 3a52b896cff0513d, processorarchitecture = MSIL =' için ' Asm1, sürüm 1.0.0.0, culture = neutral, publickeytoken = 3a52b896cff0513d, processorarchitecture = MSIL =' değil bir uyumlu yükseltme.

Eski sürümü bir kesin adlandırılmış derleme istediğinizde, aşağıdaki adımları izleyin:

  1. Derlemeye dayanan tüm nesneleri bırakın.

  2. Yeni derleme sürümünü bırakın.

  3. Derleme eski sürümünü oluşturun.

  4. Derlemeye dayanan tüm gerekli nesneleri oluşturun.

Not: Bir kesin adlandırılmış derleme derleme ALTER deyimini kullanarak yükseltebilirsiniz. Ancak, yükseltme başvurulan derlemenin gerektiriyorsa, "Yükseltme veya derleme sürüm düşürme" bölümünde listelenen adımları izlemeniz gerekir.

Başvurular

ALTER ASSEMBLY deyimi hakkında daha fazla bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitesini ziyaret edin:

http://msdn2.microsoft.com/en-us/library/ms186711.aspxIldasm.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/aa309387(VS.71).aspx

Daha fazla yardıma mı ihtiyacınız var?

Daha fazla seçenek mi istiyorsunuz?

Abonelik avantajlarını keşfedin, eğitim kurslarına göz atın, cihazınızın güvenliğini nasıl sağlayacağınızı öğrenin ve daha fazlasını yapın.

Topluluklar, soru sormanıza ve soruları yanıtlamanıza, geri bildirimde bulunmanıza ve zengin bilgiye sahip uzmanlardan bilgi almanıza yardımcı olur.

Bu bilgi yararlı oldu mu?

Dil kalitesinden ne kadar memnunsunuz?
Deneyiminizi ne etkiledi?
Gönder’e bastığınızda, geri bildiriminiz Microsoft ürün ve hizmetlerini geliştirmek için kullanılır. BT yöneticiniz bu verileri toplayabilecek. Gizlilik Bildirimi.

Geri bildiriminiz için teşekkürler!

×