Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为组件创建组件';dotnetpiper.CLR';由于程序集';microsoft.visualbasic.activities.compiler';_C#_.net_Sql Server_.net Assembly_Sqlclr - Fatal编程技术网

C# 为组件创建组件';dotnetpiper.CLR';由于程序集';microsoft.visualbasic.activities.compiler';

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” 具有权限设置=不安全 请

我在SQL Server中执行
创建程序集
命令时遇到问题,错误消息如下:

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的所有帮助。我将来可能需要你,但我肯定会追你:)