SSDT部署CLR问题:.Net SqlClient:无法安装程序集,因为现有策略将阻止其使用

时间:2012-10-02 22:55:44

标签: sql-server visual-studio clr sql-server-data-tools

我在SQL 2008 R2中有一个数据库,我通过导入现有数据库创建了一个SSDT SQL数据库项目。此DB具有一些使用System.Drawing V2.0的CLR例程。

在本地部署项目时,我收到以下错误。

  

SQL72014:.Net SqlClient数据提供程序:消息6586,级别16,状态1,行1程序集“SystemDrawing”无法安装,因为现有策略将阻止其使用。

我不确定要查找的政策。

1 个答案:

答案 0 :(得分:3)

您的t-sql脚本应该是以下

CREATE DATABASE [test]
GO
ALTER DATABASE [test] SET TRUSTWORTHY ON WITH ROLLBACK IMMEDIATE
GO
USE [test]
GO
ALTER DATABASE [test] SET TRUSTWORTHY ON
GO
exec sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
exec sp_configure 'clr enabled', 1;
GO
RECONFIGURE;
GO
CREATE ASSEMBLY [System.Drawing]
AUTHORIZATION [dbo]
FROM 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\System.Drawing.dll'
WITH PERMISSION_SET = UNSAFE
GO

但是请注意,如果您已经安装了.net 4,那么您必须使用那个,并且可能是您使用了错误的dll用于sql server。