私は最近同様の質問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で有効です)。
提案をいただきありがとうございます。私はSQL Server 2012ファイルでdllを探しましたが、そこにはありません。私はまた、私のプロジェクトですべてのDTS関連の参照を削除して再追加しようとしましたが、それは助けになりませんでした。とにかくありがとう! – Melanie
プロジェクトでMicrosoft.SqlServer.DTSRuntimeWrapが直接参照されていますか?別のアセンブリの依存関係である可能性があります。 .NetReflectorを試して、アセンブリのすべての依存関係を調べることができます。また、ハードドライブに格納されている場所を調べることもできます。 Web/App.configファイルも見てください。間違ったアセンブリが参照されることがあります。 – mode777