C# 如何在SQL Server 2014中为SQL CLR注册PdfSharp?
我有一个CLR存储过程,它调用PdfSharp 1.32.3057.0从给定查询创建PDF。PdfSharp可以在本地开发服务器(Windows 2012/SQL server 2014)上注册,但不能在QA服务器(Windows 2008 r2/SQL server 2014)上注册 尝试在SA帐户下注册pdfsharp,该帐户是'util'db的dboC# 如何在SQL Server 2014中为SQL CLR注册PdfSharp?,c#,sql-server,sqlclr,C#,Sql Server,Sqlclr,我有一个CLR存储过程,它调用PdfSharp 1.32.3057.0从给定查询创建PDF。PdfSharp可以在本地开发服务器(Windows 2012/SQL server 2014)上注册,但不能在QA服务器(Windows 2008 r2/SQL server 2014)上注册 尝试在SA帐户下注册pdfsharp,该帐户是'util'db的dbo CREATE ASSEMBLY [PdfSharp] FROM 'c:\SqlClr\PdfSharp.dll' W
CREATE ASSEMBLY [PdfSharp]
FROM 'c:\SqlClr\PdfSharp.dll'
WITH PERMISSION_SET = UNSAFE
警告:Microsoft.NET Framework程序集'system.windows.forms,version=2.0.0.0,culture=neutral,publickeytoken=b77a5c561934e089,processorarchitecture=msil'。您注册的程序未在SQL Server托管环境中进行全面测试,不受支持。将来,如果升级或服务此程序集或.NET Framework,您的CLR集成例程可能会停止工作。有关详细信息,请参阅SQL Server联机丛书
Msg 6586,第16级,状态1,第118行无法安装程序集“System.Windows.Forms”,因为现有策略将阻止使用该程序集 对于util db,
是否可信
设置为on
.NET 4.7.2和.NET 3.5.1都安装在QA服务器上
如何注册此程序集而不出错
System.Windows.Forms
库。错误状态为“system.windows.forms,version=2.0.0.0,…,它适用于CLR version 2.0,而不是CLR version 4.0。因此,您需要将.NET 4.x中的System.Windows.Forms.dll文件放入c:\SqlClr\中,以便在尝试加载PdfSharp时自动加载该文件
SAFE
或EXTERNAL\u ACCESS
,以查看返回的错误消息,该错误消息应至少指明此库需要标记为不安全的一个原因
如果使用静态类变量缓存每次执行的值,则应:
将“readonly”关键字添加到静态类变量声明中并重新编译。编译时,如果代码中有写入该变量的位置,它们将生成错误。您需要修复发生这种情况的每个地方。您可以尝试删除“static”关键字(显然不添加“readonly”),使其成为一个实例变量,这样使用起来很安全
不要使用解决方案,而是寻找其他解决方案
System.Windows.Forms
库。错误状态为“system.windows.forms,version=2.0.0.0,…,它适用于CLR version 2.0,而不是CLR version 4.0。因此,您需要将.NET 4.x中的System.Windows.Forms.dll文件放入c:\SqlClr\中,以便在尝试加载PdfSharp时自动加载该文件
SAFE
或EXTERNAL\u ACCESS
,以查看返回的错误消息,该错误消息应至少指明此库需要标记为不安全的一个原因
如果使用静态类变量缓存每次执行的值,则应:
将“readonly”关键字添加到静态类变量声明中并重新编译。编译时,如果代码中有写入该变量的位置,它们将生成错误。您需要修复发生这种情况的每个地方。您可以尝试删除“static”关键字(显然不添加“readonly”),使其成为一个实例变量,这样使用起来很安全
不要使用解决方案,而是寻找其他解决方案
system.windows.forms, version=4.0.0.0, culture=neutral, publickeytoken=b77a5c561934e089, processorarchitecture=msil
system.drawing, version=4.0.0.0, culture=neutral, publickeytoken=b03f5f7f11d50a3a, processorarchitecture=msil
accessibility, version=4.0.0.0, culture=neutral, publickeytoken=b03f5f7f11d50a3a, processorarchitecture=msil
system.runtime.serialization.formatters.soap, version=4.0.0.0, culture=neutral, publickeytoken=b03f5f7f11d50a3a, processorarchitecture=msil
C:\Windows\Microsoft.NET\Framework64\v4.0.30319