0

我编写了一个要部署到 SQL Server 2012 数据库的存储过程。书面存储过程引用了许多程序集,包括NationalInstruments.Common.Native.dll.

当我尝试发布存储过程时,出现以下错误:

SQL72014:.Net SqlClient 数据提供者:消息 6503,级别 16,状态 12,第 1 行程序集“nationalinstruments.visans,版本=9.0.40.156,文化=中性,publickeytoken=dc6ad606294fc298。” 在 SQL 目录中找不到。

CREATE ASSEMBLY with PERMISSION_SET=UNSAFE我尝试使用and将程序集添加到数据库中TRUSTWORTHY ON。在添加System.Messaging到数据库时,这对我有用。对 执行相同操作时NationalInstruments.Common.Native.dll,出现以下错误:

消息 6544,级别 16,状态 1,第 2 行为
程序集“NationalInstruments.Common.Native”创建程序集失败,因为程序集“NationalInstruments.Common.Native”格式错误或不是纯 .NET 程序集。无法验证的 PE 标头/本机存根。

我了解 SQLCLR 不支持以本机(非托管代码)编写的程序集。但是,我真的需要NationalInstruments.Common.Native.dll,因为它被 引用NationalInstruments.Common.dll,而 又被 引用NationalInstruments.VisaNS,这对我的存储过程的功能至关重要。

有没有办法绕过使用NationalInstruments.Common.Native.dll,或以某种方式将其转换为托管代码的纯 .NET 程序集?

(我不知道这是否相关,但存储过程是使用 Visual Studio 2012 用针对 .NET Framework 4.5 的 C# 编写的。)

4

0 回答 0