6

パイプライン内の (読み取り/書き込み) 文字列からすべての先頭および末尾のスペースを削除する非常に単純なコンポーネントがあります。私が見る限り、開発マシンにはこの dll のバイナリが 1 つしかありません。別の開発マシンに転送して GAC に登録していますが、2 台目のマシンにコピーしたパッケージを開くと、次の警告が表示されます。

エラー 1 検証エラー。データ フロー タスク: DTS.Pipeline: "コンポーネント "TrimColumnsComponent" (1909)" のコンポーネント メタデータを新しいバージョンのコンポーネントにアップグレードできませんでした。PerformUpgrade メソッドが失敗しました。LD_CXSUM.dtsx 0 0

ツールボックスにコンポーネントがあり、別のコンポーネントをデータフロー キャンバスにドラッグできますが、問題はないようです。

これは、両方のマシン上の SQL Server 2005 と Visual Studio 2005 です。

2 番目のマシンでは、パッケージを最初から作成でき、コンポーネントをビルドしたマシンに読み込まれます (ただし、アイコンは、2 番目のマシンと同じ標準のユーザー コンポーネント アイコンです)。ビルド マシンで最初からパッケージを作成すると、正しいアイコンが表示されますが、非ビルド マシンではアップグレード メッセージが表示されます。ファイルは components ディレクトリで同一であり、同じコンポーネント クラス ID を持ち、GAC に登録されています。

XML を調べて手動で dtsx ファイルを確認しましたが、ビルド マシンと非ビルド マシンで作成されたパッケージでは、クラス ID と公開キーがマシン間で同一です。

何が原因でしょうか?

4

6 に答える 6

4

私は同じ問題を抱えていました.それは間違ったターゲットサーバーバージョンのセットでした. ソリューション エクスプローラーでプロジェクトを右クリックし、[プロパティ] を選択して確認できます。構成プロパティ、一般に移動すると、TargetServerVersion オプションが表示されます。これをターゲットに変更できます。

于 2019-11-14T16:21:30.547 に答える
3

通常、これは、パッケージが保存された後にコンポーネントがアップグレードされたため、バージョン番号が間違っていることを意味します。残念ながら、コンポーネントを再度追加する必要があります1

パッケージを新しいバージョンとして保存し、それを移行してみることができる場合があります。これにより、自動アップグレードが呼び出される (その後失敗する) という問題が解決される場合があります。

于 2009-07-28T14:53:10.093 に答える
1

GAC 内のコンポーネントのコピーが Program Files\Microsoft SQL Server\90\DTS\PipelineComponents フォルダー内のコピーと一致することを 100% 確信していますか? GAC コピーは実行時に使用され、PipelineComponents の下のコピーは VS IDE によって使用されます。x64 マシンで実行している場合は、通常の Program Files フォルダーと x86 フォルダーの両方の下にある PipelineComponents フォルダーに必ずコピーしてください。

于 2009-08-10T00:18:35.200 に答える
1

Client Tools SDKClient Tools Backward Compatabilityを SQL Server インストールに含めることで、アップグレードの問題が解決しました。

于 2014-03-03T09:39:48.440 に答える