无法加载文件或程序集'System.Drawing,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一

问题描述

我有一个调用外部dll的SQL Server存储过程。存储过程代码如下:

作为调用程序执行 如 外部名称“某些外部dll”

我没有此dll的源代码,但是当我执行存储过程时,出现上述错误。我已经安装了.net framework 3.5和4.8,我可以看到服务器上有引用的dll,但似乎无法访问它?

所有权限都被授予,我还需要检查什么?

解决方法

SQL Server CLR永远不会从数据库外部加载程序集。您必须运行CREATE ASSEMBLY才能将每个从属程序集安装到数据库中。

但是,您不应使用.NET Framework程序集(例如System.Drawing)来执行此操作。每当服务器上更新.NET Framework时,都必须重新加载所有.NET Framework程序集。加上某些.NET Framework程序集是“混合模式”,SQL Server不允许您将它们安装在数据库中,此外,未测试或不支持在“祝福列表”中的少数几个.NET Framework程序集在SQL CLR中运行

The libraries/namespaces supported by CLR integration in SQL Server are:

CustomMarshalers
Microsoft.VisualBasic
Microsoft.VisualC
mscorlib
System
System.Configuration
System.Core
System.Data
System.Data.OracleClient
System.Data.SqlXml
System.Deployment
System.Security
System.Transactions
System.Web.Services
System.Xml
System.Xml.Linq

Supported .NET Framework Libraries

无论您做什么,都应该在SQL Server之外的单独过程中进行。这可以是PowerShell脚本,可以由SQL Agent,独立控制台应用程序等运行。

,

好的问题解决了,是因为windows更新影响了.NET framework 4.8,我卸载了更新,现在可以用了!

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...