2009-08-31 12 views
1

.NETアプリケーションの展開方法に関する質問があります。私のアプリケーションでは、DSO(意思決定支援オブジェクト)を使用しています。これは、Analysis Servicesサーバー(バージョン2000)にアクセスするために使用されるCOM DLLファイルです。COMオブジェクトを使用する.NETアプリケーションの展開方法

私は、溶液からCOMを参照してきた、とVisual Studio(背後にある実際のツールが)うまくCOMオブジェクトへのアクセスをラップし、.NETでそのクラスが利用できるように.NETアセンブリを作成しました。

ラッピングでは、Windowsレジストリ(DSOインストーラの実行時に、すべてのパブリックCOMクラスのCLSIDがそこに登録されています)を使用して、生成された.NETオブジェクトにDSO COMクラスをマップします。

問題は、Microsftが新しいバージョンのDSOをリリースし、その新しいバージョンをインストールすると、すべてのCLSIDがレジストリで変更されていないため、生成された.NETアセンブリのマッピングが中断してしまうことです。アプリケーションがクラッシュします。

DSOは、下位互換性パックという名前のパッケージ全体の一部として再配布されています。このパックで何かが変わったとき、それはDSOと必ずしも関係なく、COMクラスのいくつかは新しいCLSIDを受け取ります。新しいパッケージでDSOに関して何も実際に変更が加えられなくても、私のアプリケーションが動作しなくなるので、イライラします。彼らはこのパッケージをかなり頻繁にリリースします。最新のものはSQL Server 2008のインストールです。おそらくすべてのサービスパックで更新されるでしょう。私は、このシナリオでの展開に対処するにはどうすればよい

?新しいDSOバージョンごとに自分のアプリケーションの展開パッケージを作成する必要がありますか?

答えて

0

あなたは本当に、生成RCWファイルを必要としない場合があります。

それは後半にあなたの問題を解決するだろう結合のように思えます。手動でラッパークラスを作成すると時間がかかることがありますが、使用パターンによって異なります。ここでは、.NETで遅延バインディングを記述したドキュメントへのリンクです:

link text

+0

リンクは、(効果的に)壊れているようです(「* FATAL ERROR:データベースサーバへの接続に失敗しました*。」)。 –

関連する問題