我在SQL Server CREATE ASSEMBLY
命令期间遇到问题,错误消息如下:
Ms 6544,Level 16,State 1,Line 19
为汇编创建装配' dotnetpiper.CLR'失败,因为汇编&microsoft.visualbasic.activities.compiler'是否格式错误或不是纯粹的.NET程序集 无法验证的PE标头/本机存根
我正在使用此查询:
CREATE ASSEMBLY dotnetpiper
from 'D:\My\dotnetpiper.CLR.dll'
WITH PERMISSION_SET = UNSAFE
请告诉我我犯的任何错误。到目前为止,我还没有找到任何帮助。
答案 0 :(得分:2)
SQLCLR程序集中不允许使用混合模式程序集;只允许使用纯MSIL程序集。
我在下面的Stack Overflow答案中更全面地记录了这个特殊问题:
以下Stack Overflow问题涵盖同一问题,并且还显示相同的源DLL - microsoft.visualbasic.activities.compiler - 是原因:
Register CLR function (WCF based) in SQL Server 2012
您必须找到一种方法让 dotnetpiper 无需引用 microsoft.visualbasic.activities.compiler ,或者您必须找到一种方法来使用<强> dotnetpiper 强>
一种可能性是通过控制台应用程序(不像SQLCLR环境那样受限制)从 dotnetpiper 中获取所需的基本功能,然后通过每个人最喜欢的{{{}来执行控制台应用程序。 1}}。