O que você está tentando fazer não é suportado pelo host CLR do SQL Server. O CLR no SQL Server é altamente restrito para evitar a desestabilização do SQL Server, pois funciona de maneira diferente dos aplicativos executados no sistema operacional. Portanto, há um conjunto muito limitado de DLLs com suporte (ou seja, verificados para funcionar e garantidos para continuar funcionando nas atualizações do .NET). WindowsBase não é um deles, então você precisaria carregá-lo manualmente como
UNSAFE
no SQL Server. Mas isso deixa você com o problema que você encontrou da versão no GAC principal mudando (DLLs que são comuns entre o GAC e o host CLR do SQL Server devem ser da mesma versão), ou pior, se a DLL se tornar "mista" (tanto C++ não gerenciado quanto código gerenciado) e não é mais "puro". Nesse caso, a nova versão não será carregada e a versão antiga receberá o erro "versão incorreta", então você terá algum trabalho a fazer. Para obter informações mais detalhadas, consulte os seguintes artigos/documentação:
- SQL Server 2005 Supported .NET Framework Bibliotecas
- SQL Server 2008/2008 R2/2012/2014 Bibliotecas .NET Framework com suporte
- Política de suporte para assemblies .NET Framework não testados no ambiente hospedado pelo SQL Server CLR
- Mensagem de erro ao executar uma rotina CLR ou usar um assembly no SQL Server:"Assembly in host store tem uma assinatura diferente do assembly no GAC. (Exception from HRESULT:0x80131050)"
Esse conjunto de links foi retirado da seção "Leitura adicional" de um artigo que escrevi:Escada para SQLCLR Nível 5:Desenvolvimento (Usando .NET no SQL Server) .
Para obter mais informações sobre como trabalhar com SQLCLR em geral, visite meu site:SQLCLR Info