2009-07-27 3 views
0

私はさまざまな問題に直面していますが、以下で説明します。すべてのマシンで同じように動作するexeをbulidする方法

私はsqlserverのインスタンスとデータベースのリストを列挙できるC#クラスライブラリ(Test.dll)を作成しました。私は2台のマシン1 devマシンと2台がテストマシンです。

私の開発マシンでアプリケーションをテストすると、正しく動作しています。しかし、アプリケーション(exeファイル)をテストマシンにコピーすると、Test.dllに書かれたインターフェースのメソッドを呼び出すことができません。

私はdevマシンでアプリケーションをデバッグすると、デバッガー私は単純にマシンをテストするために私のソースコードを含むフォルダを共有している。

今、私はソースコードを含んでいないテストマシンでアプリケーションをデバッグしています。しかし、私は恐怖ですtest.dllにあるメソッドへの関数呼び出しは失敗しました。私はこれが起こったことを知りません...

どのようにこの問題を解決する方法とアプリケーションをすべてのマシンで実行するようにする同じ効果.....

+1

これはC#の場合、なぜC++にタグ付けされていますか? – xtofl

+0

COMサーバーはC#にあり、クライアントはVC++にあります。 – sharptooth

答えて

1

かわいい、

は、あなたのアプリケーションとSQL Serverの間のソフトウェアのリンクが欠落しているようです。

ネイティブ/ OLEDB/ODBCドライバを使用してSQL Serverにアクセスするようにプログラミングする場合は、それらのドライバがインストールされていることを確認する必要があります。これらのドライバは、現在v2.8にあるMicrosoft Data Access Components(MDAC)の一部です(http://www.microsoft.com/downloads/details.aspx?FamilyID=6c050fe3-c795-4b7d-b037-185d0506396c&displaylang=en)。

開発環境/ SQL Serverワークステーションコンポーネントをインストールすると、これらのものは単独でインストールされています。

+0

ソフトウェアのリンクはありません。 – Cute

+0

かわいい、私はあなたのソフトウェアが動作するためには、これらのドライバが必要であることを意味しました。 –

1

アプリケーションでエラー処理を実装する必要があります - COMメソッドから返されたエラーコードをプログラムでチェックし、もしあればIErrorInfoを取得して関連する処理を行うコード - ユーザーにエラーメッセージを表示するか、ログファイル。

デバッグをすべてのマシンで同じように動作させるには、デバッグする各マシン上のソースをコピーすることを除いて、あまり効果がありません。

関連する問題