質問

CLRアセンブリを介して、SQL Server 2008のChilkat暗号化ライブラリを使用しようとしています。 Chilkatライブラリがどのように組み立てられるか(以下のメッセージを参照)。これを直接実行することはできず、Chilkatライブラリを参照しているが、SQL Serverの必要な方法で完全に管理されているラッパークラスを作成する必要があります。

以下は、SQL Serverによってライブラリを直接インターフェイスする方法について尋ねたときのChilkatからの応答です(短いバージョンはできないということです)。

Chilkat .NETアセンブリは混合モードアセンブリです。つまり、実装はC ++で記述され、ネイティブコードにコンパイルされます。外側の層は、管理されたインターフェイスです。過去に他の顧客から、この状況では、ラッパーアセンブリがChilkatアセンブリを参照し、代わりにSQL Serverオブジェクトがあなたの参照を参照するVisual Studio(完全に管理された)でシンプルなラッパークラスライブラリを作成することで問題を解決できることを学びました。ラッパーアセンブリ。おそらく、ほんの一握りのチルカットメソッド(およびプロパティ)を呼び出すだけであることを考えると、ラップされたチルカットオブジェクトにコールを転送し、結果を返すためのいくつかの方法を書くのはそれほど作業ではないはずです。

Ok。これが問題です。 Visual Studio 2008でCLRプロジェクトを作成すると、Chilkatライブラリ(またはその他)への参照を完全に追加することはできません。がある 番号 タブ /ボタン /リンクなどを参照して、追加の参照ライブラリを追加します。それは単にそこにありません。

クリッパーまたはdbase3+に頼ることを余儀なくされる前に助けてください!

詳細:SQL Server 2008、Visual Studio 2008、Chilkat評価ライブラリ2011年4月。

役に立ちましたか?

解決

SQL Serverは、CLRアセンブリをロードできることについて少しうるさく、Visual Studioは古いアセンブリリファレンスWilly Nillyを追加することを妨げます。

これは、次のようにサードパーティアセンブリをロードする必要があるためです 新しいアセンブリ データベースの「プログラム可能性」ノードの下にあるツール(アセンブリを右クリック)、または使用して CREATE ASSEMBLY.

これにより、SQL Serverはアセンブリを検査し、検証して、SQL CLR統合で使用するためのサポートされているタイプであることを確認する機会が得られます。これは、アセンブリがSQLサーバーを殺したり、安定性の問題を引き起こす可能性がないことを保証するために行います。

SQL Books Onlineのこのセクションでは、SQL CLR制限をカバーしています。

CLR統合プログラミングモデルの制限

Chilikatアセンブリはで失敗します Peverify ミックスモードアセンブリのため、テスト(外部_Accessセクションで説明) 管理されていない関数を含む 検証可能なタイプの安全コードではありません。

未検証の混合モードアセンブリをインストールしようとすると、次のようなエラーが表示されます。

アセンブリ「ChilkatdotNet2」のアセンブリを作成する「chilkatdotnet2」が純粋な.netアセンブリではないため、アセンブリ「Chilkatdotnet2」が不正されているために失敗しました。検証できないPEヘッダー/ネイティブスタブ。 (Microsoft SQL Server、エラー:6544)

があります ここでディスカッションスレッド それはこのトピックといくつかの提案された回避をカバーしています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top