5

Linq を使用する VS 2008 で作成されたアセンブリを参照する CLR ストアド プロシージャがあります。このアセンブリを「MyLib」と呼びましょう。

「MyLib」を SQL 2005 データベースに取得できないようです。私は次のことを行います:

CREATE ASSEMBLY [MyLib]
    FROM 'C:\MyLib\bin\Release\MyLib.dll'
WITH PERMISSION_SET = UNSAFE
GO

しかし、私はエラーが発生します:

Assembly 'MyLib' references assembly 'system.core, version=3.5.0.0, 
culture=neutral, publickeytoken=b77a5c561934e089.', which is not present 
in the current database. SQL Server attempted to locate and automatically 
load the referenced assembly from the same location where referring assembly 
came from, but that operation has failed (reason: 2(error not found)). Please
load the referenced assembly into the current database and retry your request.

すべての .Net 3.5 アセンブリを SQL 2005 CLR に入れる簡単な方法はありますか? これを行うための「ベストプラクティス」の方法はありますか?

4

2 に答える 2

2

このスレッドをチェックしてください。基本的に、新しいアセンブリをグローバル アセンブリ キャッシュから自動的にロードするのではなく、手動でロードする必要があります。

(バージョン 2.0 と 3.5 の CLR は同じです)

于 2009-07-27T17:16:43.110 に答える
1

SQL Server 2005 には v2.0.50727 CLR が同梱されていましたが、これにはまだ LINQ が含まれていませんでした。

SQL 2005 CLR アセンブリで LINQ を使用することはできません。.NET 2.0 アセンブリの元のセットに固執する必要があります。

関連するすべての 3.5 システム アセンブリ (つまり、System.Linq、System.Data.Linq) を展開に含めることができる可能性はわずかしかありません。それらはすべて .NET 2.0 CLR に基づいているため、可能かもしれません。個人的には、おそらく試してみる気にはならないでしょう。

SQL Server 2008 R2 には、新しい CLR が含まれている可能性が高いです (私の推測です。正式な確認や発表はまだありません。知る限り)。

マルク

于 2009-07-27T17:13:21.057 に答える