Những gì bạn đang cố gắng thực hiện không được máy chủ CLR của SQL Server hỗ trợ. CLR trong SQL Server bị hạn chế rất nhiều để ngăn chặn việc làm mất ổn định SQL Server vì nó hoạt động khác với các ứng dụng chạy trên hệ điều hành. Vì vậy, có một tập hợp rất hạn chế các tệp DLL được hỗ trợ (tức là đã được xác minh để hoạt động và đảm bảo duy trì hoạt động trên các bản cập nhật cho .NET). WindowsBase không phải là một trong số chúng, vì vậy bạn cần phải tải nó theo cách thủ công dưới dạng UNSAFE
vào SQL Server. Nhưng điều đó khiến bạn gặp phải sự cố mà phiên bản trong GAC chính thay đổi (các DLL phổ biến giữa máy chủ lưu trữ CLR của GAC và SQL Server phải là cùng một phiên bản) hoặc tệ hơn, nếu DLL trở nên "hỗn hợp" (cả C ++ không được quản lý và mã được quản lý) và không còn "thuần túy". Trong trường hợp đó, phiên bản mới sẽ không tải và phiên bản cũ bị lỗi "phiên bản sai", vì vậy bạn có một số việc phải làm.
Để biết thêm thông tin chi tiết, vui lòng xem các bài viết / tài liệu sau:
- SQL Server 2005 .NET Framework được hỗ trợ Thư viện
- SQL Server 2008/2008 R2 / 2012/2014 Thư viện .NET Framework được hỗ trợ
- Chính sách hỗ trợ cho các hội đồng .NET Framework chưa được kiểm tra trong môi trường lưu trữ CLR của SQL Server
- Thông báo lỗi khi bạn thực thi quy trình CLR hoặc sử dụng hội đồng trong SQL Server:"Hợp ngữ trong cửa hàng lưu trữ có chữ ký khác với hợp ngữ trong GAC. (Ngoại lệ từ HRESULT:0x80131050)"
Tập hợp các liên kết đó được lấy từ phần "Đọc thêm" của một bài báo tôi đã viết: Bậc thang đến SQLCLR Cấp 5:Phát triển (Sử dụng .NET trong SQL Server) .
Để biết thêm thông tin về cách làm việc với SQLCLR nói chung, vui lòng truy cập trang web của tôi: Thông tin SQLCLR