Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Il CLR personalizzato di SQL Server non riesce con errore Impossibile caricare il file o l'assembly o una delle relative dipendenze. Il sistema non trova il file specificato.

Quello che stai tentando di fare non è supportato dall'host CLR di SQL Server. Il CLR all'interno di SQL Server è fortemente limitato per impedire la destabilizzazione di SQL Server poiché funziona in modo diverso rispetto alle app in esecuzione nel sistema operativo. Quindi, esiste un set molto limitato di DLL supportate (ovvero verificate per funzionare e garantite per continuare a funzionare negli aggiornamenti a .NET). WindowsBase non è uno di questi, quindi dovresti caricarlo manualmente come UNSAFE in SQL Server. Ma questo ti lascia con il problema in cui ti sei imbattuto nella versione nella modifica GAC ​​principale (le DLL comuni tra GAC ​​e l'host CLR di SQL Server devono essere la stessa versione) o peggio, se la DLL diventa "mista" (sia C++ non gestito che codice gestito) e non è più "puro". In tal caso la nuova versione non verrà caricata e la vecchia versione riceve l'errore "versione errata", quindi hai del lavoro da fare.

Per informazioni più dettagliate, vedere i seguenti articoli/documentazione:

Quel set di collegamenti è preso dalla sezione "Lettura aggiuntiva" di un articolo che ho scritto:Scala per SQLCLR livello 5:sviluppo (usando .NET in SQL Server) .

Per ulteriori informazioni sull'utilizzo di SQLCLR in generale, visitare il mio sito:SQLCLR Info