To, co se pokoušíte provést, není podporováno hostitelem CLR serveru SQL Server. CLR v rámci SQL Server je velmi omezený, aby se zabránilo destabilizaci SQL Server, protože funguje jinak než aplikace běžící na OS. Existuje tedy velmi omezená sada knihoven DLL, které jsou podporovány (tj. ověřeno, že fungují a je zaručeno, že zůstanou funkční i přes aktualizace .NET). WindowsBase mezi ně nepatří, takže byste ji museli načíst ručně jako UNSAFE
do SQL Serveru. To vám ale způsobí buď problém, na který jste narazili při změně verze v hlavním GAC (DLL, které jsou společné mezi GAC a hostitelem CLR serveru SQL Server, musí mít stejnou verzi), nebo ještě hůř, pokud se DLL stane „smíšenou“ (jak nespravovaný C++, tak spravovaný kód) a již není „čistý“. V takovém případě se nová verze nenačte a stará verze dostane chybu „špatná verze“, takže máte nějakou práci.
Podrobnější informace naleznete v následujících článcích/dokumentaci:
- Podporované rozhraní .NET Framework SQL Server 2005 Knihovny
- SQL Server 2008 / 2008 R2 / 2012 / 2014 Podporované knihovny .NET Framework
- Zásady podpory pro netestovaná sestavení .NET Framework v prostředí hostovaném SQL Server CLR
- Chybová zpráva při spuštění rutiny CLR nebo použití sestavení na serveru SQL Server:"Sestavení v hostitelském úložišti má jiný podpis než sestavení v GAC. (Výjimka z HRESULT:0x80131050)"
Tato sada odkazů je převzata z části "Další čtení" článku, který jsem napsal:Schodiště k SQLCLR Level 5:Vývoj (používání .NET v rámci SQL Server) .
Další informace o práci s SQLCLR obecně naleznete na mém webu:Informace o SQLCLR