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
と を使用してアセンブリをデータベースに追加しようとしましたTRUSTWORTHY ON
。System.Messaging
これは、データベースに追加するときに以前はうまくいきました。に対して同じことをするとNationalInstruments.Common.Native.dll
、次のエラーが発生します。
メッセージ 6544、レベル 16、状態 1、行 2
アセンブリ 'NationalInstruments.Common.Native' の CREATE ASSEMBLY が失敗しました。アセンブリ '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# で記述されています。)