1

CLR ストアド プロシージャで使用する iTextSharp のアセンブリを作成した人はいますか? 私は午後ずっと試してきましたが、結果を得ることができませんでした。SQL管理スタジオは、最初にsystem.drawingを登録する必要があると言っています(新しいバージョンにすることはできず、古いバージョンにする必要があります)が、安全または安全でないために作成しようとすると問題が発生します。

それで、誰かがCLR SPROCSを介して動作するようにiTextSharpをセットアップすることに成功したかどうか疑問に思っていますか? これを行う理由は、パラメーターを渡してレポートを生成するのがはるかに簡単になるためです (CLR SPROC は標準の静的なものを保持し、パラメーターは動的なものを制御できます)。

助けてくれてありがとう

4

2 に答える 2

1

これらのアセンブリをサーバーに登録します。

CREATE ASSEMBLY [System.Drawing] FROM
  'C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dll'
  WITH PERMISSION_SET = UNSAFE

CREATE ASSEMBLY [System.Windows.Forms] FROM
  'C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dll'
  WITH PERMISSION_SET = UNSAFE

CREATE ASSEMBLY [itextsharp] FROM
  'C:\MY_CLR\itextsharp.dll'
  WITH PERMISSION_SET = UNSAFE

次に、[参照の追加] ダイアログ ([SQL Server] タブ) で itextsharp の参照を見つけることができます。

動作します (VS2010、C#、SQLServer2005、itextsharp5.0)

于 2010-10-25T11:30:50.403 に答える
1

他の回答が示唆するように、System.Windows.Forms.dllは必要ありません。 これらの 2 つの参照を Visual Studio プロジェクトに追加するだけです。

  1. System.Drawing.dll
  2. itextsharp.dll

これらの DLL の両方がプロジェクトによって参照されていることを確認してください。
次に、これら 2 つの参照 DLL のプロパティで、「モデル対応」プロパティを「True」に設定し
ます。ほとんど文書化されていないこのプロパティの何かが、参照アセンブリを自動展開します。
ここに画像の説明を入力

プロジェクトを再ビルドし (必ずこれを実行しないと、エラーが表示される場合があります)、デプロイを試みます。
これら 2 つの参照がアセンブリとして SQL データベースに自動的に追加されます。
いったん追加されると、少なくともその後の再デプロイでそれらを削除して再度追加することはありません。

注:これを行った後、プロジェクトをデプロイしようとするたびに失敗します。
理由はわかりませんが、我慢したいと思います(VS2013を使用しています)。


警告: この恐ろしいエラーに遭遇しました:

参照されているアセンブリが変更されるため、ALTER ASSEMBLY は失敗しました。参照されるアセンブリ リストは同じままである必要があります。

これが発生した場合は、アセンブリ全体を削除する必要があります。これは、展開に関する何かが原因でアセンブリの一部がそのまま残り、External-References が更新されず、代わりにこの不可解な/役に立たないエラーが発生するためです。

私がやったことは、すべての依存関係アセンブリをPreDeployScript.sqlにドロップすることでした。このようにして、SQL アセンブリを展開するサーバー (または新しい参照を追加するとき) での問題を回避します。

于 2016-10-26T16:37:02.173 に答える