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:
- SQL Server 2005 compatible con .NET Framework Bibliotecas
- SQL Server 2008/2008 R2/2012/2014 Bibliotecas de .NET Framework compatibles
- Política de soporte para ensamblados de .NET Framework no probados en el entorno hospedado por CLR de SQL Server
- Mensaje de error cuando ejecuta una rutina CLR o usa un ensamblado en SQL Server:"El ensamblado en el almacén host tiene una firma diferente que el ensamblado en GAC. (Excepción de HRESULT:0x80131050)"
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