あなたがしようとしていることは、SQL Server の CLR ホストではサポートされていません。 SQL Server 内の CLR は、OS 上で実行されているアプリとは異なる動作をするため、SQL Server の不安定化を防ぐために高度に制限されています。そのため、サポートされている DLL のセットは非常に限られています (つまり、動作が検証され、.NET の更新後も動作し続けることが保証されています)。 WindowsBase はその 1 つではないため、UNSAFE
として手動でロードする必要があります。 SQL Server に。しかし、そうすると、メインの GAC の変更で発生した問題 (GAC と SQL Server の CLR ホスト間で共通の DLL は同じバージョンでなければならない) が発生するか、さらに悪いことに、DLL が「混在」することになります。 (アンマネージ C++ とマネージ コードの両方) であり、もはや "純粋" ではありません。その場合、新しいバージョンはロードされず、古いバージョンは「間違ったバージョン」エラーになるため、いくつかの作業が必要です。
詳細については、次の記事/ドキュメントを参照してください:
- SQL Server 2005 サポートされている .NET Frameworkライブラリ
- SQL Server 2008 / 2008 R2 / 2012 / 2014 がサポートする .NET Framework ライブラリ
- サポート ポリシーSQL Server CLR ホスト環境でテストされていない .NET Framework アセンブリ用
- CLR ルーチンを実行するとき、または SQL Server でアセンブリを使用するときのエラー メッセージ:「ホスト ストアのアセンブリには、GAC のアセンブリとは異なる署名があります。(HRESULT からの例外:0x80131050)」
この一連のリンクは、私が書いた記事の「追加資料」セクションから引用したものです。 -5-development-using-net-within-sql-server">SQLCLR レベル 5 への階段:開発 (SQL Server 内で .NET を使用) .
一般的な SQLCLR の操作の詳細については、私のサイトにアクセスしてください:SQLCLR 情報