Det, du forsøger at gøre, understøttes ikke af SQL Servers CLR-vært. CLR i SQL Server er stærkt begrænset for at forhindre destabiliserende SQL Server, da det fungerer anderledes end apps, der kører på OS. Så der er et meget begrænset sæt DLL'er, der understøttes (dvs. verificeret til at virke og garanteret forblive i arbejde på tværs af opdateringer til .NET). WindowsBase er ikke en af dem, så du bliver nødt til at indlæse den manuelt som UNSAFE
ind i SQL Server. Men det efterlader dig enten med det problem, som du stødte ind i af versionen i den primære GAC-ændring (DLL'er, der er fælles mellem GAC og SQL Servers CLR-vært, skal være den samme version), eller værre, hvis DLL'en bliver "blandet" (både uadministreret C++ og administreret kode) og er ikke længere "ren". I så fald vil den nye version ikke indlæses, og den gamle version får fejlen "forkert version", så du har noget arbejde at gøre.
For mere detaljeret information, se venligst følgende artikler/dokumentation:
- SQL Server 2005 Understøttet .NET Framework Biblioteker
- SQL Server 2008/2008 R2/2012/2014 Understøttede .NET Framework-biblioteker
- Supportpolitik til utestede .NET Framework-samlinger i SQL Server CLR-hostet miljø
- Fejlmeddelelse, når du udfører en CLR-rutine eller bruger en assembly i SQL Server:"Assembly i værtslageret har en anden signatur end assembly i GAC. (Undtagelse fra HRESULT:0x80131050)"
Det sæt links er taget fra afsnittet "Yderligere læsning" i en artikel, jeg skrev:Trappe til SQLCLR niveau 5:Udvikling (brug af .NET i SQL Server) .
For mere information om at arbejde med SQLCLR generelt, besøg venligst mit websted:SQLCLR Info