2017-12-05 10 views
1

SQL関数を使用して.NETアセンブリをMS SQL Serverにインポートする予定がありました。MS SQL Serverでアセンブリを作成する際のトラブル

私はこのようにそれをインポートしようとしてきた。それは、Microsoftのように、私はまた、参照されるアセンブリを作成するために必要なその後のVisual Studio

の私のSQLプロジェクトによって生成された

CREATE ASSEMBLY [AssemblyName] 
AUTHORIZATION [dbo] 
FROM 0x4D5A9000030... 

このような.CSharp」

CREATE ASSEMBLY [Microsoft.CSharp] 
FROM 'path to dll' 
WITH PERMISSION_SET = UNSAFE 

そして、私が持っているエラー:

アセンブリ 'Microsoft.CSharp'は、現在のデータベースに存在しないアセンブリ 'system.dynamic、version = 4.0.0.0、culture = neutral、publickeytoken = b03f5f7f11d50a3。'を参照しています。 SQL Serverは、参照アセンブリの元の場所と同じ場所から参照アセンブリを見つけて自動的にロードしようとしましたが、その操作は失敗しました(理由:2(指定されたファイルが見つかりません))。参照されているアセンブリを現在のデータベースに読み込み、リクエストを再試行してください。

今、私は本当に理解していません。私の知る限り、System.Dynamicはアセンブリではなく、System.Core.dllの名前空間です。 System.CoreはMS SQL Serverでサポートされており、デフォルトでインポートされます。そのような問題を解決し、そのようなアセンブリを正常にインポートする方法はありますか?

+0

これは100%ではありませんが、Microsoft.CSharpのようなものはGACにあり、登録する必要はありません。 – Steve

答えて

1

それ(System.Dynamic.dll)は実際にはアセンブリです。あなたはGACとディスクでそれを見つけることができます。 C#がdynamicを実装するために使用する多くの実装の詳細があります。すべてのタイプがinternalあるので、あなたは、通常はそれを見ることはありませんが、それは使用しています:

[assembly: InternalsVisibleTo("Microsoft.CSharp, PublicKey =002400000480000094000000060200000024000052534131000400000100010007d1fa57c4aed9f0a32e84aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad9d5dcc1dd9ad2900b723cf980957fc4e177108fc607774f29e8320e92ea05ece4e821c0a5efe8f1645c4c0c93c1ab99285d622caa652c1dfad63d745d6f2de5f17e5eaf0fc4963d261c8a12436518206dc093344d5ad293")] 

ので、これらの実装の詳細はMicrsoft.CSharp.dll

データベースが利用できることは、ここでは100%正しいです。

+0

ありがとう、私は実際にGACでこのアセンブリを見つけた、それをインポートし、すべてが魅力のように働いた – Merhart

関連する問題