Conectați-vă cu Microsoft
Conectați-vă sau creați un cont
Salut,
Selectați un alt cont.
Aveți mai multe conturi
Alegeți contul cu care doriți să vă conectați.

Număr eroare: 490 (remediere SQL)

Rezumat

Când încercați să faceți upgrade sau downgrade unei asamblări pentru un common language runtime (CLR) obiect într-o instanță a Microsoft SQL Server 2005, se poate modifica versiunea de asamblări se face referire în metadate de asamblare. În plus, dacă utilizați o asamblare numit puternică pentru un obiect CLR, nu poate downgrade asamblarea utilizând instrucțiunea ALTER ASAMBLĂRII.

INTRODUCERE

Acest articol descrie cum se face upgrade sau downgrade unei asamblări care are o asamblare referențiată pentru un obiect CLR într-o instanță de SQL Server 2005.

Mai multe informații

Cum se face upgrade sau downgrade o asamblare

În SQL Server 2005, utilizați instrucțiunea ALTER asamblare să faceți upgrade sau downgrade o asamblare independent care nu a fost creat cu un nume puternic. Pentru o asamblare numit puternică, se poate face upgrade, dar nu poate downgrade asamblarea utilizând instrucțiunea ALTER asamblare.

Nu puteți faceți upgrade sau downgrade unei asamblări în următorul scenariu:

  • Asamblare A creat pentru un obiect CLR într-o instanță. Asamblare A are o asamblare referențiată. Adunarea referențiată este asamblare B.

  • Asamblare B are nici o asamblare referențiată.

  • Când recompilare asamblare A pentru a face referire la o altă versiune de asamblare B.

În acest scenariu, utilizați instrucțiunea ALTER asamblare upgrade-ul de asamblare B la o versiune nouă. Dacă Adunarea B nu este o asamblare numit puternică, poate, de asemenea, downgrade asamblare B la o versiune mai veche. Cu toate acestea, nu utilizați instrucțiunea ALTER asamblare să faceți upgrade sau downgrade A asamblării pentru versiunea recompilat.

Acest comportament se produce deoarece SQL Server creează o politică de fusion CLR atunci când creați asamblare A. Această politică de fusion CLR hărți automat versiunea de asamblare B în metadate de asamblare A pentru versiunea reală a asamblării B. SQL Server încarcă versiunea nouă a asamblării B la momentul execuției când faceți upgrade sau downgrade asamblare B la unele altă versiune. Acest comportament se produce chiar dacă A asamblării se referă la versiunea originală de asamblare B. Cu toate acestea, atunci când încercați să faceți upgrade sau downgrade A asamblării când A asamblării conține o nouă versiune a asamblării B în metadatele, instrucțiunea ALTER asamblare nu va reuși și primiți mesaje de eroare care seamănă cu următorul:

Mesaj de eroare 1

MSG 6529, Level 16, State 1, Line 1

ALTER asamblare nu a reușit deoarece identitatea referențiată assembly 'RefAsm' s-a modificat. Asigurați-vă că versiunea, numele și cheia publică nu este modificat.

Mesaj de eroare 2

MSG 6282, Level 16, State 1, Line 1

ALTER asamblare nu a reușit deoarece asamblări referențiată ar modifica. Lista de asamblare referențiată trebuie să rămână aceeași.

Faceți upgrade sau downgrade asamblare

Note

  • Acești pași upgrade sau downgrade A asamblării în scenariul care a fost descrisă în secțiunea "Cum se face upgrade sau downgrade unei asamblări".

  • Acest exemplu presupune că versiunile de asamblări două 1.0.0.0 şi de asamblări sunt scrise în C#. Când urmați acești pași, încercați să faceți upgrade de asamblare A și B asamblare versiune 2.0.0.0.

Pentru a face upgrade sau downgrade A asamblării, urmați acești pași.

  1. Copierea de rezervă versiunea 1.0.0.0 de asamblare B într-un folder.

  2. Modificați și apoi recompilare asamblare B versiune 2.0.0.0.

  3. Utilizați instrucțiunea ALTER asamblare upgrade-ul de asamblare B în SQL Server 2005.

  4. Modificați și apoi recompilare asamblare A versiunii 2.0.0.0. Când faceți aceasta, referință versiunea 1.0.0.0 de asamblare B din copia de rezervă pe care le-ați efectuat în pasul 1. Pentru aceasta, utilizați instrumentul compilator Csc.exe împreună cu parametrul /reference . De exemplu, utilizați următoarea comandă:

    CSC /target:library/out:AssemblyA.dll AssemblyA.cs AssemblyInfo.cs /reference: "BackupFolder\AssemblyB.dll"Notă Pentru a verifica versiunea de asamblare B în metadate de asamblare A, deschideți A asamblării utilizând utilitarul Ildasm.exe. Apoi, verificați informațiile metadatele pentru a se face referire în secţiunea manifesta .

  5. Utilizați instrucțiunea ALTER asamblare upgrade-ul de asamblare A în SQL Server 2005.

Cum la spre downgrade un nume puternic asamblare

Dacă utilizați o asamblare numit puternice pentru un obiect CLR, SQL Server 2005 nu acceptă utilizarea instrucțiunea ALTER asamblare downgrade asamblări. Dacă încercați să downgrade de versiune al unei asamblări utilizând instrucțiunea ALTER asamblare, primiți un mesaj de eroare asemănător cu următorul:

Msg 6579, Level 16, State 1, Line 1
Alter asamblare de la ' Asm1, versiune = 1.1.0.0, culture neutral, publickeytoken = = 3a52b896cff0513d, processorarchitecture = msil' la ' Asm1, versiune = 1.0.0.0, culture neutral, publickeytoken = = 3a52b896cff0513d, processorarchitecture = msil' nu este un upgrade-ul compatibil.

Când doriți să downgrade o asamblare numit puternică, urmați acești pași:

  1. Fixați-toate obiectele care depind de asamblare.

  2. Fixați-versiunea mai nouă a asamblării.

  3. Creați versiunea mai veche de asamblare.

  4. Creați toate obiectele necesare care depind de asamblare.

Notă Se poate face upgrade o asamblare numit puternică utilizând instrucțiunea ALTER ASAMBLĂRII. Cu toate acestea, dacă upgrade-ul implică o asamblare referențiată, trebuie să urmați aceiași pași care sunt listate în secțiunea "Upgrade sau downgrade unei asamblări".

Referințe

Pentru mai multe informații despre instrucțiunea ALTER asamblare, vizitați următorul site Web Microsoft Developer Network (MSDN):

http://msdn2.microsoft.com/en-us/library/ms186711.aspxPentru mai multe informații despre utilitarul Ildasm.exe, vizitați următorul site MSDN Web:

http://msdn2.microsoft.com/en-us/library/aa309387(VS.71).aspx

Aveți nevoie de ajutor suplimentar?

Doriți mai multe opțiuni?

Explorați avantajele abonamentului, navigați prin cursurile de instruire, aflați cum să vă securizați dispozitivul și multe altele.

Comunitățile vă ajută să adresați întrebări și să răspundeți la întrebări, să oferiți feedback și să primiți feedback de la experți cu cunoștințe bogate.

Au fost utile aceste informații?

Cât de mulțumit sunteți de calitatea limbajului?
Ce v-a afectat experiența?
Apăsând pe Trimitere, feedbackul dvs. va fi utilizat pentru a îmbunătăți produsele și serviciile Microsoft. Administratorul dvs. IT va avea posibilitatea să colecteze aceste date. Angajamentul de respectare a confidențialității.

Vă mulțumim pentru feedback!

×