Objawy
Podczas uruchamiania rozszerzenia języka zewnętrznego innej firmy, które jest zależne od innej biblioteki udostępnionej, może zostać wyświetlony komunikat o błędzie.
Błąd: nie znaleziono biblioteki
Stan
Firma Microsoft potwierdziła, że jest to problem dotyczący produktów firmy Microsoft wymienionych w sekcji „Dotyczy”.
Rozwiązanie
Ten problem został rozwiązany w następującej aktualizacji zbiorczej dla programu SQL Server:
Informacje o aktualizacjach zbiorczych programu SQL Server:
Każda nowa aktualizacja zbiorcza programu SQL Server zawiera wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji skumulowanej. Sprawdź najnowsze aktualizacje zbiorcze dla programu SQL Server:
Obejście
Dla systemu Windows:
Aby obejść ten problem, należy jawnie dodać:
- ścieżka do bibliotek zależności, jeśli rozszerzenie języka zip nie zawiera biblioteki zależności LUB
- Katalogi języka i rozszerzeń Jeśli rozszerzenie języka zip zawiera bibliotekę zależności oprócz samego rozszerzenia
do systemowej zmiennej środowiskowej PATH, aby można było znaleźć biblioteki zależności.
Na przykład:
Scenariusz 1:
- Masz rozszerzenie języka z biblioteką zależności w lokalizacji: C:\\Users\\admin\\Documents\\dependency.dll.
- language-extension.zip zawiera tylko languageExtension.dll.
- Następnie upewnij się, że ścieżka do zależności została dodana do systemowej zmiennej środowiskowej PATH. Na przykład C:\\Users\\admin\\Documents.
TWORZENIE JĘZYKA ZEWNĘTRZNEGO [mylanguage]
FROM (CONTENT = N'C:\\Users\\admin\\Documents\\language-extension.zip', FILE_NAME = 'languageExtension.dll')
GO
Scenariusz 2:
- Jeśli language-extension.zip zawiera zarówno rozszerzenielanguageExtension.dll , jak i jego bibliotekę zależności — dependency.dll, najpierw znajdź następny identyfikator języka, zaczynając od 65536, uruchamiając następujący widok wykazu w odpowiedniej bazie danych i dodając 1 do najwyższego zainstalowanego identyfikatora języka większego niż 65536. Na przykład w przypadku głównej bazy danych "SELECT * FROM master.sys.external_languages".
- Wygeneruj ścieżkę do katalogu języka, zastępując nazwę, database_id i next_language_id wystąpienia następującą ścieżką: C:\\Program Files\\Microsoft SQL Server\\MSSQL15. MSSQLSERVER\\MSSQL\\ExternalLanguages\\<database_id>\\<identyfikator następnego języka>.
- Następnie utwórz język zewnętrzny w następujący sposób:
TWORZENIE JĘZYKA ZEWNĘTRZNEGO [mylanguage]
FROM (CONTENT = N'C:\\Users\\admin\\Documents\\language-extension.zip', FILE_NAME = 'languageExtension.dll',
ENVIRONMENT_VARIABLES = N'{"PATH":"C:\\ProgramFiles\\Microsoft SQLServer\\MSSQL15. MSSQLSERVER\\MSSQL\\ExternalLanguages\\1\\65536"}');
GO
Dla systemu Linux:
Nie ma poprawki i zawsze należy dodać ${ORIGIN} do opcji rpath konsolidatora podczas kompilowania rozszerzeń.
Na przykład: set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-rpath,'${ORIGIN}'")
Źródła informacji
Dowiedz się więcej o terminologii używanej przez firmę Microsoft do opisywania aktualizacji oprogramowania.