为汇编创建装配' dotnetpiper.CLR'失败,因为程序集&micros;。microsual.visualbasic.activities.compiler'

时间:2016-08-23 02:26:45

标签: c# .net sql-server .net-assembly sqlclr

我在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

请告诉我我犯的任何错误。到目前为止,我还没有找到任何帮助。

1 个答案:

答案 0 :(得分:2)

SQLCLR程序集中不允许使用混合模式程序集;只允许使用纯MSIL程序集。

我在下面的Stack Overflow答案中更全面地记录了这个特殊问题:

SQL Server: "CREATE ASSEMBLY for assembly 'Test' failed because assembly 'Test' is malformed or not a pure .NET assembly."

以下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}}。