Det du försöker göra stöds inte av SQL Servers CLR-värd. CLR inom SQL Server är mycket begränsad för att förhindra att SQL Server destabiliseras eftersom den fungerar annorlunda än appar som körs på operativsystemet. Så det finns en mycket begränsad uppsättning DLL-filer som stöds (dvs. verifierade att fungera och garanterat fortsätta fungera över uppdateringar till .NET). WindowsBase är inte en av dem så du måste ladda den manuellt som UNSAFE
till SQL Server. Men det lämnar dig med antingen problemet som du stötte på av versionen i huvud-GAC-ändringen (DLL-filer som är gemensamma mellan GAC och SQL Servers CLR-värd måste vara samma version), eller ännu värre, om DLL-filen blir "blandad" (både ohanterad C++ och hanterad kod) och är inte längre "ren". I så fall kommer den nya versionen inte att laddas och den gamla versionen får felet "fel version" så du har lite arbete att göra.
För mer detaljerad information, se följande artiklar/dokumentation:
- SQL Server 2005 som stöds .NET Framework Bibliotek
- SQL Server 2008 / 2008 R2 / 2012 / 2014 .NET Framework Libraries som stöds
- Supportpolicy för oprövade .NET Framework-sammansättningar i SQL Server CLR-värdmiljön
- Felmeddelande när du kör en CLR-rutin eller använder en assembly i SQL Server:"Assembly i host store har en annan signatur än assembly i GAC. (Undantag från HRESULT:0x80131050)"
Den uppsättningen länkar är hämtad från avsnittet "Ytterligare läsning" i en artikel jag skrev:Trappa till SQLCLR nivå 5:utveckling (med .NET inom SQL Server) .
För mer information om att arbeta med SQLCLR i allmänhet, besök min webbplats:SQLCLR Info