Nr błędu: 490 (poprawki programu SQL)
Streszczenie
Podczas uaktualniania ani obniżania wersji zestawu dla typowych language runtime (CLR) obiektu w wystąpieniu programu Microsoft SQL Server 2005, nie można zmienić wersji odwołania zestawów w metadanych zestawu. Ponadto jeśli używasz zestaw o silnej nazwie dla obiektu CLR nie można obniżyć zestawu przy użyciu instrukcji ALTER zestawu.
WPROWADZENIE
W tym artykule opisano sposób uaktualniania ani obniżania wersji zestawu, który ma odwołanie zestawu dla obiektu CLR w wystąpieniu programu SQL Server 2005.
Więcej informacji
Jak uaktualnić lub obniżyć zestawu
W programie SQL Server 2005 można użyć instrukcji ALTER Zgromadzenia uaktualniania ani obniżania wersji zestawu autonomicznego, który nie został utworzony przy użyciu silnej nazwy. Dla zestawu z silną nazwą można uaktualnić, ale nie można obniżyć zestawu przy użyciu instrukcji ALTER zestawu.
Nie można uaktualnić lub starszą wersję zestawu w następującym scenariuszu:-
Zestaw A jest tworzony dla obiektu CLR w instancji. Zestaw A ma odwołanie zestawu. Odnośny zestaw jest zestawem B.
-
Zestaw B ma nie odwołanie zestawu.
-
Ponownie skompilować zestawu A odwołać różnych wersji zestawu B.
W tym scenariuszu można użyć instrukcji ALTER zgromadzenia zestawu B uaktualnienia do nowej wersji. Jeśli zestaw B nie jest zestaw o silnej nazwie, można także obniżyć zestawu B do starej wersji. Jednak nie można użyć instrukcji ALTER Zgromadzenia, uaktualnienia lub obniżyć A montaż do wersji ponownej kompilacji.
To zachowanie występuje, ponieważ program SQL Server tworzy zasady syntezy CLR Podczas tworzenia zestawu A. Ta zasada syntezy CLR automatycznie mapuje wersję zestawu B w metadanych zestawu, A do aktualnej wersji zestawu B. SQL Server ładuje nowa wersja zestawu B w czasie wykonywania, podczas uaktualniania lub starszą wersję zestawu B do innych wersji. To zachowanie występuje, nawet jeśli zestawu, A odnosi się do oryginalnej wersji zestawu B. Jednak podczas uaktualniania ani obniżania wersji A montaż, gdy A montaż zawiera nową wersję zestawu B w metadanych, instrukcja ALTER zestawu zakończy się niepowodzeniem i komunikaty o błędach podobne do następujących:Komunikat o błędzie 1
Msg 6529, poziom: 16, stan: 1, wiersz 1
Zmiana zestawu nie powiodło się, ponieważ tożsamość odwołanie zestawu 'RefAsm' została zmieniona. Upewnij się, że wersja, nazwę i klucz publiczny nie uległy zmianie.Komunikat o błędzie nr 2
Msg 6282, poziom: 16, stan: 1, wiersz 1
Zmiana zestawu nie powiodło się, ponieważ zmienia się odwołania zestawów. Lista odwołania zestawu musi pozostać taka sama.Uaktualnij lub starszą wersję zestawu
Uwagi
-
Następujące kroki uaktualnienia lub obniżyć A montaż w scenariuszu, który został opisany w sekcji "Jak uaktualnić lub obniżyć zestawu".
-
W tym przykładzie założono, że wersje dwóch zestawów są zarówno 1.0.0.0 i zestawy zapisane są w języku C#. Po wykonaniu tych kroków, spróbuj uaktualnić do wersji 2.0.0.0 Zgromadzenia i montażu B.
Aby uaktualnić lub obniżyć A montaż, wykonaj następujące kroki.
-
Wykonaj kopię zapasową wersję 1.0.0.0 zestawu B folderu.
-
Zmodyfikować, a następnie ponownie skompilować zestawu B do wersji 2.0.0.0.
-
Użyj instrukcji ALTER Zgromadzenia uaktualnić zestawu B w programie SQL Server 2005.
-
Modyfikuj, a następnie ponownie skompilować zestawu A do wersji 2.0.0.0. Kiedy to zrobisz, odwołanie wersji 1.0.0.0 zestawu B z kopii zapasowej, które wprowadzono w kroku 1. Aby to zrobić, użyj narzędzie kompilatora Csc.exe wraz z przełącznikiem/Reference . Na przykład następujące polecenie:
CSC/target: library/out:Assemblyaodnosi.dll AssemblyaodnosiCS/Reference AssemblyInfo.cs: "BackupFolder\AssemblyB.dll"Uwaga Aby sprawdzić numer wersji zestawu B w metadanych zestawu A, otwórz A montaż przy użyciu narzędzia Ildasm.exe. Następnie sprawdź informacje metadanych dla zestawu w sekcji MANIFESTU .
-
Użyj instrukcji ALTER Zgromadzenia uaktualnić A montaż w programie SQL Server 2005.
Jak obniżyć zestaw o silnej nazwie
Jeśli używasz zestaw o silnej nazwie dla obiektu CLR programu SQL Server 2005 nie obsługuje za pomocą instrukcji ALTER zestawu na starszą wersję zestawów. Jeśli próby zmiany na starszą wersję zestawu przy użyciu instrukcji ALTER MONTAŻOWYCH, pojawi się komunikat o błędzie podobny do następującego:
Msg 6579, poziom: 16, stan: 1, wiersz 1
Zmiana zestawu z ' Asm1, wersja = 1.1.0.0, kultury = neutral, publickeytoken = 3a52b896cff0513d, processorarchitecture = msil "do" Asm1, wersja 1.0.0.0, culture = neutral, publickeytoken = 3a52b896cff0513d, processorarchitecture = msil "nie jest kompatybilny upgrade.Gdy użytkownik chce obniżyć zestaw o silnej nazwie, wykonaj następujące kroki:
-
Usuwanie wszystkich obiektów, które są zależne od zestawu.
-
Upuść nowszej wersji zestawu.
-
Tworzenie starszych wersji zestawu.
-
Utwórz wszystkie wymagane obiekty, które zależą od zestawu.
Uwaga Zestaw o silnej nazwie można uaktualnić przy użyciu instrukcji ALTER zgromadzenia. Jednak uaktualnienie wymaga odwołanie zestawu, należy wykonać te same kroki, które są wymienione w sekcji "Uaktualnienia lub obniżania wersji zestawu".
Powiązane artykuły
Aby uzyskać więcej informacji na temat instrukcji ALTER zestawu odwiedź następującą witrynę Microsoft Developer Network (MSDN) w sieci Web:
http://msdn2.microsoft.com/en-us/library/ms186711.aspxAby uzyskać więcej informacji dotyczących narzędzia Ildasm.exe odwiedź następującą witrynę MSDN w sieci Web:
http://msdn2.microsoft.com/en-us/library/aa309387(VS.71).aspx