C# 为组件创建组件';dotnetpiper.CLR';由于程序集';microsoft.visualbasic.activities.compiler';
我在SQL Server中执行C# 为组件创建组件';dotnetpiper.CLR';由于程序集';microsoft.visualbasic.activities.compiler';,c#,.net,sql-server,.net-assembly,sqlclr,C#,.net,Sql Server,.net Assembly,Sqlclr,我在SQL Server中执行创建程序集命令时遇到问题,错误消息如下: Msg 6544,第16级,状态1,第19行 为程序集“dotnetpiper.CLR”创建程序集失败,因为程序集“microsoft.visualbasic.activities.compiler”的格式不正确或不是纯.NET程序集。 无法验证的PE头/本机存根 我正在使用此查询: CREATE ASSEMBLY dotnetpiper 来自“D:\My\dotnetpiper.CLR.dll” 具有权限设置=不安全 请
创建程序集
命令时遇到问题,错误消息如下:
Msg 6544,第16级,状态1,第19行为程序集“dotnetpiper.CLR”创建程序集失败,因为程序集“microsoft.visualbasic.activities.compiler”的格式不正确或不是纯.NET程序集。
无法验证的PE头/本机存根 我正在使用此查询:
CREATE ASSEMBLY dotnetpiper
来自“D:\My\dotnetpiper.CLR.dll”
具有权限设置=不安全
请告诉我我犯的任何错误。到目前为止,我还没有发现任何有用的东西。SQLCLR程序集中不允许使用混合模式程序集;只允许使用纯MSIL程序集 我在下面的堆栈溢出回答中更全面地记录了这个问题: 以下堆栈溢出问题涵盖了相同的问题,并且还显示了相同的源DLL--microsoft.visualbasic.activities.compiler--是原因: 您必须找到一种方法让dotnetpiper在不引用microsoft.visualbasic.activities.compiler的情况下工作,或者您必须找到一种方法使用dotnetpiper
一种可能是通过控制台应用程序(它没有SQLCLR环境那么严格)从dotnetpiper获取所需的基本功能,然后通过每个人最喜欢的
xp\u cmdshell
执行控制台应用程序,SQLCLR程序集中不允许使用混合模式程序集;只允许使用纯MSIL程序集
我在下面的堆栈溢出回答中更全面地记录了这个问题:
以下堆栈溢出问题涵盖了相同的问题,并且还显示了相同的源DLL--microsoft.visualbasic.activities.compiler--是原因:
您必须找到一种方法让dotnetpiper在不引用microsoft.visualbasic.activities.compiler的情况下工作,或者您必须找到一种方法使用dotnetpiper
一种可能是通过控制台应用程序(没有SQLCLR环境那么严格)从dotnetpiper获取所需的基本功能,然后通过大家最喜欢的
xp\u cmdshell
执行控制台应用程序。感谢srutzky的快速响应,虽然我们尝试了上面的链接,但没有成功。除此之外,我们正在使用clsss库项目创建.dll,并使用Create Assembly with unsafe将其引用到SQL中。我们也尝试了许多方法,但仍在努力。@SachinKalia我不确定您所说的“我们已经尝试了上述链接”是什么意思。除了我在这里提到的尝试找到绕过microsoft.visualbasic.activities.compiler或创建控制台应用程序的方法之外,没有什么可以尝试的。但是,如果程序集引用了microsoft.visualbasic.activities.compiler,则无法加载程序集,因为该库无法加载到SQL Server,因为它是一个混合模式DLL。谢谢,先生,我们尝试了上面的链接,这意味着我们已经阅读并实现了其中给出的建议。我们有一个类库,我们正试图将其添加为程序集。我们可以将我们的dll设置为纯模式dll,以便加载它吗?@SachinKalia您的dll,只要它只是C#而不是VC++,就没有问题。问题出在microsoft.visualbasic.activities.compiler DLL上。该DLL microsoft.visualbasic.activities.compiler在SQLCLR中不可用,因此,CREATE ASSEMBLY
命令正在尝试导入该DLL,因为它被dotnetpiper.CLR DLL引用。但是无法加载microsoft.visualbasic.activities.compiler DLL,这意味着您的dotnetpiper.CLR DLL也无法加载。非常感谢您对srutzky的所有帮助。我可能需要你在未来比肯定会追你:)感谢srutzky为您的快速反应,而我们已经尝试了上述链接,并没有得到成功。除此之外,我们正在使用clsss库项目创建.dll,并使用Create Assembly with unsafe将其引用到SQL中。我们也尝试了许多方法,但仍在努力。@SachinKalia我不确定您所说的“我们已经尝试了上述链接”是什么意思。除了我在这里提到的尝试找到绕过microsoft.visualbasic.activities.compiler或创建控制台应用程序的方法之外,没有什么可以尝试的。但是,如果程序集引用了microsoft.visualbasic.activities.compiler,则无法加载程序集,因为该库无法加载到SQL Server,因为它是一个混合模式DLL。谢谢,先生,我们尝试了上面的链接,这意味着我们已经阅读并实现了其中给出的建议。我们有一个类库,我们正试图将其添加为程序集。我们可以将我们的dll设置为纯模式dll,以便加载它吗?@SachinKalia您的dll,只要它只是C#而不是VC++,就没有问题。问题出在microsoft.visualbasic.activities.compiler DLL上。该DLL microsoft.visualbasic.activities.compiler在SQLCLR中不可用,因此,CREATE ASSEMBLY
命令正在尝试导入该DLL,因为它被dotnetpiper.CLR DLL引用。但是无法加载microsoft.visualbasic.activities.compiler DLL,这意味着您的dotnetpiper.CLR DLL也无法加载。非常感谢您对srutzky的所有帮助。我将来可能需要你,但我肯定会追你:)