Wat u probeert te doen, wordt niet ondersteund door de CLR-host van SQL Server. De CLR binnen SQL Server is zeer beperkt om destabilisatie van SQL Server te voorkomen, omdat deze anders werkt dan apps die op het besturingssysteem worden uitgevoerd. Er is dus een zeer beperkte set DLL's die wordt ondersteund (d.w.z. geverifieerd om te werken en gegarandeerd te blijven werken bij updates naar .NET). WindowsBase is daar niet een van, dus u zou het handmatig moeten laden als UNSAFE
in SQL Server. Maar dat laat je achter met het probleem dat je tegenkwam met de versie in de hoofd-GAC die verandert (DLL's die gemeenschappelijk zijn tussen de GAC en de CLR-host van SQL Server moeten dezelfde versie zijn), of erger nog, als de DLL "gemengd" wordt. (zowel onbeheerde C++ als beheerde code) en is niet langer "puur". In dat geval wordt de nieuwe versie niet geladen en krijgt de oude versie de foutmelding "verkeerde versie", dus je hebt wat werk te doen.
Raadpleeg de volgende artikelen / documentatie voor meer gedetailleerde informatie:
- SQL Server 2005 Ondersteund .NET Framework Bibliotheken
- SQL Server 2008 / 2008 R2 / 2012 / 2014 Ondersteunde .NET Framework-bibliotheken
- Ondersteuningsbeleid voor niet-geteste .NET Framework-assembly's in de door SQL Server CLR gehoste omgeving
- Foutbericht wanneer u een CLR-routine uitvoert of een assembly in SQL Server gebruikt:"Assembly in hoststore heeft een andere handtekening dan assembly in GAC. (Uitzondering op HRESULT:0x80131050)"
Die reeks links is afkomstig uit de sectie "Aanvullende lezing" van een artikel dat ik schreef:Stairway to SQLCLR Level 5:Development (Gebruik van .NET binnen SQL Server) .
Voor meer informatie over het werken met SQLCLR in het algemeen, bezoek mijn site:SQLCLR Info