2012-10-02 9 views
0

我在SQL 2008 R2中有一個數據庫,我通過導入現有數據庫創建了一個SSDT SQL數據庫項目。這個數據庫有一些使用System.Drawing V2.0的CLR例程。SSDT部署CLR問題:.Net SqlClient:程序集無法安裝,因爲現有策略會阻止它被使用

在本地部署項目時,出現以下錯誤。

SQL72014:.net SqlClient數據提供:消息6586,級別16,狀態1,行1大會「SystemDrawing」無法安裝,因爲現有的政策將保持它被使用。

我不確定要查找什麼樣的政策。

+2

爲什麼你需要在數據庫中使用System.Drawing? – brian

+0

有一個小部件可以從png文件中提取信息並將數據存儲在數據庫中。在「傳統」VS項目中沒有問題,但在SSDT SQL DB項目的一部分時沒有問題。 –

+0

ps:通常他們正在談論的策略是硬編碼的「這個dll在mssql服務器中是不允許的」,所以請檢查你的dll版本。 – Archlight

回答

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,你必須使用一個和它可能是你正在使用的SQL服務器錯誤的DLL。

+0

我不再在這個項目上工作,但它看起來像我們用過的東西 –

相關問題