Kaip atnaujinti arba ankstesnę versiją rinkinio, kurio nurodyto surinkimo CLR objekto egzempliorius SQL Server 2005


Bug #: 490 (SQL karštoji pataisa)

Santrauka


Kai bandote atnaujinti arba ankstesnę versiją rinkinio bendras kalbos vykdyklė (CLR) objekto kopiją Microsoft SQL Server 2005, negalite pakeisti nurodytą rinkiniai metaduomenų rinkinio versija. Be to, jei naudojate stiprus pavadintas rinkinio CLR objektą, negalima downgrade surinkimo naudojant pakeisti rinkinio patvirtinimo.

ĮVADAS


Šiame straipsnyje aprašoma, kaip atnaujinti arba ankstesnę versiją rinkinio, kurio nurodyto surinkimo CLR objekto egzempliorius SQL Server 2005.

Daugiau informacijos


Kaip atnaujinti arba ankstesnę versiją rinkinio

SQL Server 2005, galite pakeisti rinkinio patvirtinimo atnaujinti ar ankstesnę versiją atskiras rinkinys, kuris buvo sukurtas su stiprus vardas. Stiprus pavadintas rinkinio, galite atnaujinti bet negalite paleisti ankstesnę versiją surinkimas naudojant pakeisti rinkinio patvirtinimo.

Negalima atnaujinti arba ankstesnę versiją rinkinio tokią situaciją:
  • Surinkimas sukuriamas CLR objekto egzemplioriaus. Surinkimas yra nurodyto surinkimo. Nurodyto surinkimo yra rinkinio B.
  • Rinkinio B yra nėra nurodyto surinkimo.
  • Galite kompiliuoti A rinkinio, kad būtų atsižvelgta į kitą versiją, rinkinio B.
Tokiu atveju galite pakeisti rinkinio patvirtinimo rinkinio B atnaujinti į naują versiją. Jei rinkinio B strong pavadintas rinkinio, taip pat galite downgrade rinkinio B į seną versiją. Tačiau negalite pakeisti rinkinio patvirtinimo atnaujinti arba downgrade rinkinio A recompiled versiją.

Taip atsitinka, nes SQL serverio CLR fusion strategijos bandant sukurti rinkinio A. Šis CLR fusion strategijos automatiškai žemėlapių rinkinio B metaduomenų rinkinio Į faktinę rinkinio b SQL serverio versiją įkelia naują versiją rinkinio B vykdymo metu, kai atnaujinti ar ankstesnę versiją ir kai kurie kiti versija B rinkinio versija. Taip nutinka, nors surinkimas nurodo sukūrusi rinkinio B. Tačiau, kai bandote atnaujinti arba ankstesnę versiją rinkinio A rinkinio A yra nauja versija metaduomenų B mėn., pakeisti rinkinio patvirtinimo nepavyksta ir gaunate klaidų pranešimus, panašius į šiuos:
1 klaidos pranešimas
MSG 6529, lygio 16, valstybė 1, 1 eilutė

PAKEISTI rinkinio nepavyko, nes nurodyto surinkimo "RefAsm" tapatybė buvo pakeista. Įsitikinkite, kad versija, pavadinimą ir viešasis raktas nepasikeitė.
2 klaidos pranešimas
MSG 6282, lygio 16, valstybė 1, 1 eilutė

PAKEISTI rinkinio nepavyko, nes nurodyto rinkinių būtų pakeisti. Nurodyto surinkimo sąrašas turi būti toks pat.

Atnaujinti arba ankstesnę versiją, rinkinys

Pastabos
  • Šiuos veiksmus atnaujinti arba ankstesnę versiją rinkinio A, aprašytą skyriuje "Kaip atnaujinti ar ankstesnę versiją rinkinio" atveju.
  • Šiame pavyzdyje laikoma, dviejų rinkinių versijos 1.0.0.0 ir toliau rinkiniai ir parašyti C#. Atlikdami šiuos veiksmus, jūs bandote atnaujinti rinkinio A ir B rinkinio versija 2.0.0.0.
Norėdami atnaujinti arba rinkinio A ankstesnę versiją, atlikite šiuos veiksmus.
  1. Sukurkite atsarginę versija 1.0.0.0 rinkinio B į aplanką.
  2. Keisti ir tada kompiliuoti rinkinio B 2.0.0.0 versiją.
  3. Naudoti pareiškimo pakeisti rinkinio atnaujinti rinkinio B SQL Server 2005.
  4. Keisti ir tada kompiliuoti surinkimas 2.0.0.0 versiją. Kai jums tai padaryti, pagrindinė versija 1.0.0.0 rinkinio B iš atsarginės kopijos, pasirinkote atlikdami 1 veiksmą. Norėdami tai padaryti, naudokite įrankį Csc.exe kompiliatorius, kartu su /reference jungiklį. Pavyzdžiui, naudokite šią komandą:
    CSC /target:library/informaciją:AssemblyA.dll AssemblyA.cs AssemblyInfo.cs /reference: "BackupFolder\AssemblyB.dll"
    Pastaba. Patikrinkite, ar surinkimas metaduomenų B rinkinio versiją, atidarykite rinkinio A Ildasm.exe priemone. Tada patikrinkite, ar PASIREIŠKIA skyriuje nurodyto surinkimo metaduomenų informaciją.
  5. Naudoti pareiškimo pakeisti rinkinio atnaujinti rinkinio A SQL Server 2005.

Kaip downgrade strong pavadintas rinkinys

Jei naudojate stiprus pavadintas rinkinio CLR objektą, SQL Server 2005 nepalaiko pakeisti rinkinio patvirtinimo downgrade rinkinių. Jei bandysite downgrade rinkinio versiją naudodami pakeisti rinkinio patvirtinimą, galite gauti klaidos pranešimą, panašų į šį:
MSG 6579, lygio 16, valstybė 1, 1 eilutė
Pakeisti rinkinio iš "Asm1, versija = FoxScribe 1.1.0.0, culture = neutral, publickeytoken = 3a52b896cff0513d, processorarchitecture = msil" ir "Asm1, versija 1.0.0.0, culture = neutral, publickeytoken = 3a52b896cff0513d, processorarchitecture = msil" nėra suderinamos versijos naujinimas.
Jei norite downgrade strong pavadintas rinkinio, atlikite šiuos veiksmus:
  1. Palikite visus objektus, kurie priklauso nuo surinkimo.
  2. Drop rinkinio naujesne versija.
  3. Sukurti senesnę rinkinio.
  4. Kurti visus reikalingus objektus, kurie priklauso nuo surinkimo.
Pastaba. Stiprus pavadintas rinkinio galite naujinti naudodami pakeisti rinkinio patvirtinimo. Tačiau, jei naujinti nurodyto surinkimo, reikia atlikti tuos pačius veiksmus, kurie išvardyti skyriuje "Atnaujinti arba ankstesnės versijos rinkinio".

Nuorodos


Daugiau informacijos apie rinkinio pakeisti patvirtinimą, apsilankykite šioje "Microsoft" programų kūrėjų tinklo (MSDN) žiniatinklio svetainėje:Jei norite gauti daugiau informacijos apie Ildasm.exe priemonę, apsilankykite šioje MSDN žiniatinklio svetainėje: