我正在尝试从特定的dll创建程序集。我执行命令是由于对.net程序集的引用而无法创建程序集
从 CREATE ASSEMBLY “xx.xx.blobviewer” 'd:\ XX \ XX \ XX \ BlobSniffer \ BlobSniffer.dll' WITH PERMISSION_SET =不安全
的消息我得到的响应是:
大会 'BlobSniffer' 的引用组件 'system.runtime.serialization,版本= 4.0.0.0,文化=中性 公钥= b77a5c561934e089',它不存在于目前的0123数据库。 SQL Server试图从引用程序集 来自的相同位置找到并自动加载引用的程序集,但该操作已失败(原因:2(系统不能 找到指定的文件))。请将引用的程序集加载到当前数据库的 中,然后重试您的请求。
我试图复制要求的.NET的DLL-S到BlobSniffer文件夹,但之后,我复制所有引用的程序我得到这个:
CREATE ASSEMBLY装配 'BlobSniffer' 失败,因为装配 'microsoft.visualbasic.activities.compiler'格式不正确或不是纯粹的.NET程序集。无法验证的PE标头/本地存根。
第一个问题,为什么我甚至需要复制.net程序集,是不是应该自动检索?
第二个问题,装配被标记为畸形的有什么问题?该程序集也是.net框架的一部分,并且没有外部类。
omegasbk:不知道您是否注意到了,但@rolo发布了一个非常正确的答案。为了确保你的第一个问题得到直接回答,我在答复的评论中增加了一些细节。但是,这个答案非常重要。有关使用SQLCLR的更多信息,我正在SQL Server Central上编写一系列名为[SQLCLR的阶梯](http://www.sqlservercentral.com/stairway/105855/)(需要免费注册)。级别5“在SQL Server中使用.NET”专门处理此问题。 – 2015-08-17 04:25:39