2017-11-01 8 views
6

私は添付ファイルとしてExcelファイルを生成し、SSISパッケージのスクリプトタスクでメーラーを生成するために、EPPlus.dllライブラリを使用しています。実稼働環境でパッケージを展開するときに、スクリプトタスクの参照の追加で手動でDLLを参照しないようにするにはどうすればよいですか?

メーラに変更が必要な場合は、ローカルマシンのスクリプトタスクの変更を行い、ビルドされたパッケージファイル(.dtsx)をDBAチームに送信して展開します。

  1. オープンDLLの場所
  2. 追加するにはVisual Studioのデータツールでファイルソリューション
  3. ブラウズ:

    は今、毎回私はどこで私と一緒に運用サーバーの画面を共有するためにDBAチームを依頼する必要がありスクリプトタスクのdllへの参照。

次に、スケジュールされたジョブ参照がどこからパッケージファイルをインポートし、パッケージを実行します。

上記の手順を実行しないと、スクリプトタスクで参照エラーが発生します。

エラー1型または名前空間名は「OfficeOpenXml」 (あなたがusingディレクティブまたはアセンブリ参照が不足している?)が見つかりませんでした私は、GAC内のDLLをインストールするの挑戦である克服

次のようにアセンブリを動的にロードすることによってスクリプトタスクで参照されています。 '

しかし、私は手動でDLL参照を参照して追加することを避けるための手順を見つけることができません。 DBAチームが消極的である/スクリーンの共有を避けてください。

また、プロダクションサーバーに直接アクセスすることができない場合、外部DLLが使用されるサーバーにパッケージファイルを展開する正しい/ベストプラクティス方法は何ですか。

+1

インテグレーションサービスからこれを実行する方法はありません、あなたは、SSISパッケージが動作する必要が – Yahfoufi

+0

の前提条件は、その中に行うことができない他のアプローチで動作するはずです。これを行う別の外部アプリケーションが必要です。私はあなたが提供したより良い答えを得るとは思わない – Yahfoufi

+0

この問題で何か新しい? – Yahfoufi

答えて

6

あなたがそれを行うことができる唯一の回避策はあるので、私は、統合サービスパッケージからそれをする直接的な方法があるとは思わない - (あなたがCurrentDomain_AssemblyResolve機能を使用してやっていること) - 場所からアセンブリをロードしますそれをGACにインストールするのではなく、

展開にカスタムのDLLのを使用するための3通りの方法があります。

  • はコピーがすべてのDLLのSQL ServerのDTSアセンブリフォルダ(に
  • AssemblyResolve機能を使用してGAC
  • に割り当てDLLのSQL Server 2008の例:C:\Program Files\Microsoft SQL Server\100\DTS\Binnと.Netフレームワークアセンブリフォルダ。

問題が画面共有を要求する場合は、これらのdllを特定の場所にコピーしてdbaチームに実行するように求める小さなインストールウィザードを作成できます。

回避策は

この問題を探して、私はあなたが使用しているメソッドを含むWebサービスを作成し、Webを追加することができますので、直接、DLLの代わりにWebサービスを使用して面白いの回避策を見つけました代わりに、ローカルアセンブリ

側注の参照:私は前にこのアプローチをしようとしなかったが、私は唯一の

役立つリンク集を手助けしようとしています&参照

関連する問題