Това, което се опитвате да направите, не се поддържа от CLR хоста на SQL Server. CLR в SQL Server е силно ограничен, за да се предотврати дестабилизирането на SQL Server, тъй като работи по различен начин от приложенията, работещи на операционната система. Така че има много ограничен набор от DLL файлове, които се поддържат (т.е. проверени за работа и гарантирани, че ще продължат да работят при актуализации на .NET). WindowsBase не е един от тях, така че ще трябва да го заредите ръчно като UNSAFE
в SQL Server. Но това ви оставя или с проблема, с който сте се сблъскали с промяната на версията в основния GAC (DLL файловете, които са общи между GAC и CLR хоста на SQL Server, трябва да са една и съща версия), или по-лошо, ако DLL стане „смесен“ (както неуправляван C++, така и управляван код) и вече не е "чист". В този случай новата версия няма да се зареди и старата версия получава грешката „грешна версия“, така че трябва да свършите малко работа.
За по-подробна информация, моля, вижте следните статии/документация:
- SQL Server 2005 поддържа .NET Framework Библиотеки
- SQL Server 2008 / 2008 R2 / 2012 / 2014 Поддържани .NET Framework библиотеки
- Правила за поддръжка за нетествани модули на .NET Framework в среда, хоствана от SQL Server CLR
- Съобщение за грешка, когато изпълнявате CLR рутинна процедура или използвате сглобяване в SQL Server:„Сглобяването в хранилището на хост има различен подпис от сглобяването в GAC. (Изключение от HRESULT:0x80131050)“
Този набор от връзки е взет от раздела „Допълнително четене“ на статия, която написах:Стълба към SQLCLR ниво 5:Разработка (използване на .NET в SQL Server) .
За повече информация относно работата със SQLCLR като цяло, моля, посетете моя сайт:Информация за SQLCLR