由于引用 .net 程序集,无法创建程序集
本文关键字:程序集 创建 net 于引用 引用 | 更新日期: 2023-09-27 18:31:16
我正在尝试从特定的dll创建一个程序集。我执行的命令是
创建程序集"xx.xx.blobviewer" 'D:''xx''xx''xx''BlobSniffer''BlobSniffer.dll' WITH PERMISSION_SET = unsafe
我收到的响应消息是:
程序集"Blob嗅探器"引用程序集 'system.runtime.serialization, version=4.0.0.0, culture=neutral, 公钥令牌=B77A5C561934E089.',当前 数据库。SQL Server 试图找到并自动加载 从引用程序集的同一位置引用程序集 来自,但该操作失败(原因:2(系统无法 查找指定的文件。请将引用的程序集加载到 当前数据库,然后重试请求。
我尝试将请求的 .net dll-s 复制到 BlobSniffer 文件夹,但在复制所有引用的程序集后,我得到这个:
为程序集"Blob 嗅探器"创建程序集失败,因为程序集 "microsoft.visualbasic.activities.compiler"格式不正确或不是纯格式 .NET 程序集。无法验证的 PE 标头/本机存根。
第一个问题,为什么我什至需要复制 .net 程序集,它们不应该自动检索吗?
第二个问题,程序集被标记为格式不正确有什么问题?程序集也是 .net 框架的一部分,没有外部类。
看看这里:
http://msdn.microsoft.com/en-us/library/ms189524.aspx
它引用的系统程序集集是 SQL Server 中以下受支持的程序集之一:
- Microsoft.视觉基础.dll
- 姆斯科利布.dll
- 系统数据.dll
- 系统.dll
- 系统.Xml.dll
- Microsoft.视觉.dll
- 海关编组.dll
- 系统安全.dll
- 系统.网络.服务.dll
- System.Data.SqlXml.dll
- 系统核心.dll
- System.Xml.Linq.dll
可以引用其他系统程序集,但必须在数据库中显式注册这些程序集。
http://blogs.msdn.com/b/psssql/archive/2013/02/23/unable-to-register-net-framework-assembly-not-in-the-supported-list.aspx
无论哪个版本的 SQL Server,CREATE ASSEMBLY 都只允许注册纯 .NET 程序集。 SQL Server 始终要求使用 CREATE ASSEMBLY 将程序集加载到 SQL Server 数据库中的程序集仅包含 MSIL 指令(纯程序集)。 如果要注册的程序集是混合程序集,则 CREATE ASSEMBLY 将引发上述错误。
我希望这有所帮助。