2016-09-06 14 views
0

私は最近同様の質問hereを投稿しました。私はFerdipuxから受け取った非常に有益な情報に基づいて、私の質問を幾分洗練しています(コメントを参照)。簡単に言えば、C#コンソールアプリケーションからローカルのSSISパッケージ(つまり、SQL Serverに展開されていないパッケージ)を実行しようとしています。 SSISパッケージとコンソールアプリケーションは、.Net 4.5.1を使用してVisualStudio 2012でビルドされました。次のようにコードの該当部分は次のとおりです。DTSRuntimeWrapバージョン11とVisualStudio 2012を使用してC#コンソールアプリケーションからローカルSSISパッケージを呼び出す

string pkgLocation = @"C:\Users\06717\Documents\Visual Studio 2012\Projects\RMA_Data_Cleanup\RMA_Data_Cleanup\"; 
     string pkgName = "Package.dtsx"; 
     Application app = new Application(); 
     Package pkg = new Package(); 
     DTSExecResult pkgResults = new DTSExecResult(); 
     try 
     { 
      DtsEvents events = new DtsEvents(); 
      pkg = app.LoadPackage(pkgLocation + pkgName, events); 

私はapp.LoadPackageラインで立ち往生し、私は私のマシンにインストールしたSQL Server 2008のクライアント部分をアンインストールするために必要な発見なりました。私はアプリを実行したときしかし、今、私は限りラインとして取得:

Application app = new Application(); 

を私はエラーメッセージが表示されます。この行を実行しようとすると:「「Microsoft.SqlServerをファイルまたはアセンブリをロードできませんでした。 DTSRuntimeWrap、バージョン= 10.0.0.0、Culture =ニュートラル、PublicKeyToken = 89845dcd8080cc91 'またはその依存関係の1つ。指定されたファイルが見つかりません。マシンにDTSRuntimeWrapのバージョンがありますが、バージョン11ではなくバージョン10です.SQL Server 2008をアンインストールしたときにバージョン10が削除されたと思われます。正しいですか?もしそうなら、DTSRuntimeWrap dllのバージョン11を使用できるように私のコードをどのように変更すればよいですか?または、これはもはや不可能であり、SSISパッケージをSQL Serverに展開して、hereと記載されているように実行する必要があります(これはSQL Server 2012で有効です)。

答えて

0

コメントを書いていますが、評判が足りません。

私は一度同様の問題がありました。 SSISを使用すると、依存関係に陥るのが容易になるので、展開するマシンと同じSQL Serverバージョンがインストールされていることを確認してください。

SSISを実行してプロジェクトに再参照するために必要なすべての参照を削除しようとしましたか? Visual Studioがそれらを提供していない場合は、SQL Server 2012のインストールフォルダを見ることができます。

+0

提案をいただきありがとうございます。私はSQL Server 2012ファイルでdllを探しましたが、そこにはありません。私はまた、私のプロジェクトですべてのDTS関連の参照を削除して再追加しようとしましたが、それは助けになりませんでした。とにかくありがとう! – Melanie

+0

プロジェクトでMicrosoft.SqlServer.DTSRuntimeWrapが直接参照されていますか?別のアセンブリの依存関係である可能性があります。 .NetReflectorを試して、アセンブリのすべての依存関係を調べることができます。また、ハードドライブに格納されている場所を調べることもできます。 Web/App.configファイルも見てください。間違ったアセンブリが参照されることがあります。 – mode777

0

以前にお勧めしたように、SSIS 2008のアンインストール後、DLLプロジェクトのSSIS dll参照をdllバージョンで確認します。時代遅れのバージョンを参照する場合 - この参照を削除し、再度追加 - 正しいバージョンを持つ現在のdllでそれを追加します。

+0

関連するすべてのdll参照を削除して再追加しましたが、私の質問で言えば、私のマシン上にあるMicrosoft.SqlServer.DTSRuntimeWrapの唯一のバージョンはバージョン11ですが、私のプログラムはバージョン10を望んでいます。 – Melanie

+0

@Melanie、この特定のMicrosoft.SqlServer.DTSRuntimeWrap dllでは、GACフォルダに移動してそこから取得する必要があります.C:\ Windows \ Microsoft.NET \ assemblyのどこかにあります。それはピタです... – Ferdipux

+0

私はそれのために私の全体のCドライブを検索しました。私が持っている唯一のMicrosoft.SqlServer.DTSRuntimeWrap.dllは、私のプロジェクトの参照に追加すると、元の質問に私にエラーメッセージを与えるバージョン11です。だから私は困惑している。 – Melanie

関連する問題