2017-01-28 5 views
1

外部DLL(CLRアセンブリ)としてSQL Server 2008から呼び出すには、.NET v2.0でDLLをビルドする必要があります。このdllは、SQL Serverのバージョンと互換性があるために.net v2.0になければなりません。また、SQL Serverと.net V4.5で開発された他のC#の機能との間のブリッジを作成するだけです。だから私は.Net V4.5でビルドされた別のDLLを参照してくださいが、私はそれをコンパイルすることはできません!DLLを組み込むことはできますか.Net V2.0は別の組み込みの.Net V4.5を参照していますか?

警告MSB3258:それは、.NET Frameworkアセンブリ「mscorlib、バージョン= 4.0.0.0、文化=中立的に間接的な依存性を持つため、プライマリ参照「my_dll」は解決できませんでした、私は休閑の警告を持っていますPublicKeyToken = b77a5c561934e089 "で、現在のターゲットフレームワークのバージョン" 2.0.0.0 "より高いバージョン" 4.0.0.0 "を持っています。

アセンブリのバージョンの互換性を無視できますか?または、SQL Server 2008から.net V.4.5で開発された関数を呼び出すための別のソリューションがありますか?

+2

SQL ServerのCLRバージョンも2.0であるため、これは機能しません。 4.5アセンブリをロードすることはできません。そのアセンブリが他のシステムアセンブリをまったく参照していない場合(もちろんそうです)。 .NET 2.0を対象とする*すべての*アセンブリを再コンパイルするか、サーバーをアップグレードします。 –

+0

@JeroenMostertはあなたがコメントボックスに答えを入力したようです。 –

+0

@MartinSmith:私は問題を愛している脳が走り去っていて、何か解決策を見つけようと非常に難しいことがなければ、答えを与えることを嫌うからです。 COMを悪用しよう!この場合、アセンブリバージョンヘッダーを使用することができますか?たぶん... "SHUT UP")。そして、OPは別の解決策を求めていました。私は、すでに答えが少ない目を引き付ける質問を知っています。 ...私は今や散歩を止めるでしょう。 –

答えて

0

私はあなたの質問に従っているとは思えませんが、それに答えるにはプロジェクトの依存関係を.NET 4.5に変更するだけです。 .NETフレームワークは他のフレームワークバージョンを参照できますが、依存関係の順序を考慮する必要があります。 2.0が4.0ライブラリを使用している場合は、コンポーネントに独自の参照がないため、失敗します。あなたのプロジェクトがコンパイルされると、それは単一のアセンブリに配置され、そのアセンブリは使用されているすべての成分を参照する必要があります。しかしながら;あなたのプロジェクトが別々のdllであれば、そうであるように4.0のメンバーが公に会場に公開されていない限り、それらを参照することができます。しかしながら;つまり、DLLが動作するためには、dllに4.0がインストールされた環境が必要です。

同じアセンブリの異なるバージョンを実行するには、assemblyBindingをプロジェクト構成に追加する必要があります。

このポストを見て、これを達成する方法を理解するのに役立つかどうかを確認するのはちょっと難しいです。

Post

0

このanswer here当たりように、COMとして必要なコンポーネントを露出して.NET 4.5アセンブリを参照することが可能です。 .Netのすべてのバージョンは、それがコアであるCOMに基づいているため、通信の「最小共通の分母」のチャンネルとして使用できます。要件に応じて、名前付きパイプ、IPC、またはWebサービスを使用することもできます。

関連する問題