Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Falha no CLR personalizado do SQL Server com erro Não foi possível carregar o arquivo ou assembly ou uma de suas dependências. O sistema não pode encontrar o arquivo especificado.


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:

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