sql >> Base de Datos >  >> RDS >> Sqlserver

El CLR personalizado de SQL Server falla con el error No se pudo cargar el archivo o el ensamblaje o una de sus dependencias. El sistema no puede encontrar el archivo especificado.

Lo que intenta hacer no es compatible con el host CLR de SQL Server. El CLR dentro de SQL Server está altamente restringido para evitar la desestabilización de SQL Server, ya que funciona de manera diferente a las aplicaciones que se ejecutan en el sistema operativo. Por lo tanto, hay un conjunto muy limitado de archivos DLL compatibles (es decir, verificados para funcionar y garantizados para seguir funcionando en las actualizaciones de .NET). WindowsBase no es uno de ellos, por lo que deberá cargarlo manualmente como UNSAFE en el servidor SQL. Pero eso lo deja con el problema con el que se encontró con el cambio de versión en el GAC principal (los DLL que son comunes entre el GAC y el host CLR de SQL Server deben ser de la misma versión), o peor, si el DLL se vuelve "mixto" (tanto C++ no administrado como código administrado) y ya no es "puro". En ese caso, la nueva versión no se cargará y la versión anterior recibe el error de "versión incorrecta", por lo que tiene trabajo por hacer.

Para obtener información más detallada, consulte los siguientes artículos/documentación:

Ese conjunto de enlaces está tomado de la sección "Lectura adicional" de un artículo que escribí:Stairway to SQLCLR Nivel 5:Desarrollo (usando .NET dentro de SQL Server) .

Para obtener más información sobre cómo trabajar con SQLCLR en general, visite mi sitio:Información de SQLCLR