0

Visual Studio 内から実行すると正常に動作するカスタム SSIS コンポーネントを作成しています。ただし、dtexec.exe または dtexecui.exe を使用して実行すると失敗します。

PreExecute列名から LineageID へのマッピングを構築しているときに、メソッドでエラーが発生します。これは私が混乱しているところです。デバッガーで物事を見ると、取得した値を渡すだけvar foo = output.OutputColumnCollection[i].LineageIDですbufferManager.FindColumnByLineageID(output.Buffer, foo)

この時点で、次のようにFindColumnByLineageID言って例外がスローされます。

System.ArgumentException はユーザー コードによって処理されませんでした Message=Value が予期された範囲内にありません。
ソース = Microsoft.SqlServer.DTSPipelineWrap StackTrace: InnerException:

私は途方に暮れています。コードは BIDS で正常に実行されます。この時点でのロジックは問題ないようです。実際には何も問題はありません。SSIS から SSIS に値を渡しているだけです。私の感じでは、いくつかのセットアップまたは構成が台無しになっているように感じますが、現時点ではそれがどうなるかわかりません。どんな推測でも大歓迎です。

ありがとう!

4

3 に答える 3

0

Visual Studio マシンは 64 ビット環境ですか? Program Files (x86) にある DTExec.exe の 32 ビット バージョンを実行してみてください。

64 ビット バージョンを使用してパッケージを実行しようとすると、妥当な数問題が発生します。

于 2012-04-13T22:46:50.807 に答える
0

カスタムコンポーネントを登録しましたか?

カスタム タスクやカスタム変換などのカスタム SSIS コンポーネントは、配置ユーティリティでは移動されません。コンポーネントを手動で移動して登録し、SSIS パッケージがコンポーネントにアクセスできるようにする必要があります。

于 2012-04-16T08:33:57.440 に答える