DOBON.NET DOBON.NETプログラミング掲示板過去ログ

Windowsアプリが他のマシンで実行できない

環境/言語:[windowsXP C#.NET Framework1.1]
分類:[.NET]

.NET初心者です。どなたか、お助けください!

.NETでWindowsアプリを作成しました。
.NETがインストールされていないマシンへexeファイルをコピーし実行したところ、以下メッセージが表示され実行できません。

-----------------------------------------------------------------
アプリケーションで、バンドルできない例外が発生しました。
処理 ID=0xcb8(3256)、スレッド ID=0xcbc(3260)
アプリケーションを終了するには[OK]をクリックしてください。
アプリケーションをデバッグするには、[キャンセル]をクリックしてください。
------------------------------------------------------------------

実行マシンは、開発マシンと同じバージョンの.netFrameworkをインストール
しました。(dotnetfx.exe/langpack.exeのインストール済み)
おテルさん こんにちは。

どんなアプリを作ったのか分からないのでなんともいえないのですが・・・

他のコンポーネントを利用するような処理を入れていたりしませんか?
他に、オラクルとかDBを使用しているとか・・・

あと、必要なDLLは全部そろっているか、
そのDLLを開発環境と同じパスにおいているかなど、
実行環境に必要なものがちゃんとそろっているか
確認したほうがいいと思いますよ。
■No6930に返信(SHさんの記事)
SHさん。返答ありがとうございます。

アプリはExcelファイルデータの一部を、SQLサーバーのデータベースの
データへ更新をかけるものです。

参照設定にあるDLLを確認しました。
開発環境がWindowsXP、実行環境がWindows2000のため、DLLの保管先が
違っていました。
(XPはC:\WINDOWS\Microsoft.NET... 2000はC:\WINNT\Microsoft.NET... )
使っているDLLを、C:\WINDOWS\Microsoft.NET... へコピーしてみましたが
駄目でした。

EXEファイルと同フォルダーに、必要なDLLをコピーしてみましたが、こちらも
駄目でした。

トホホ
■No6934に返信(おテルさんの記事)

追記です。

自分で新たにプログラムを作成し、他のマシンで実行してみました。

・単純にメッセージボックスを表示するアプリ ---> 実行できました
・SQLサーバー上のデータを表示するアプリ--->例外エラーが発生しました

SQLサーバー上のデータにアクセスするためには、実行マシンにその設定が
必要ということでしょうか?それは、どこなのでしょうか?
ちゃんと存在するSQLサーバを指定していますか?
サーバのアドレスをlocalhost固定で指定しているアプリをSQLサーバがインストールされていないPCに移しても動作しませんし。
もう一度、サーバの設定周りを確認してみたらいかがでしょうか?
あと、例外が出ただけでは原因は分かりかねますので、内容も転記していただけると回答の仕様があるかと思います。
こんばんは。

あんまり関係ありませんが・・・

接続先の設定はどういう風に管理してますか??
DB関係のアプリを作る場合、サーバーのホスト名、
ユーザー、パスワードなんかは、
外部ファイルから取得するようなやり方にしておいたほうがいいですよ。

それはさておき、
やっぱりDBの接続環境がいけないようですね。

まずはただ単にDBに接続して、簡単なSQL(Select * 等)でなんか取得して
それを表示するだけのものを作って見ては?
■No6949に返信(SHさんの記事)

bOOさま、SHさま 返答ありがとうございます。
解決しました!!

結果、MDACのバージョンが古かったのが原因だったようで、開発マシンと
同じMDACのバージョンをインストールしたところ、問題なく動きました。

-----------------------------------------------------------------
原因調査
-----------------------------------------------------------------
try区を追加しました。(基本ですよね...)

 static void Main()
 {
  try
   {Application.Run(new Form1());}
  catch(Exception ex)
   {MessageBox.Show(ex.ToString());}
 }

-----------------------------------------------------------------
表示エラー
-----------------------------------------------------------------
System.InvalidOperationException:.NetデータSQLプロバイダ(System.Data.SqlClient)にはMicrosoft Data AccessComponents(MDAC)version 2.6以降が必要です。....

----------------------------------------------------------------
対応
----------------------------------------------------------------
MDACインストール
解決済み!
おテルさんこんにちは。

解決したようでなによりです。
MDACでしたか〜。以前同じ事で悩んだことがありました(笑)

ご自身の回答にもあるとおり、
Try区などで、エラーの詳細を把握するのは重要だと思います。

その結果、自己解決できる場合もあると思いますし、
こちらで質問する際にも他の方がアドバイスしやすくなるは
間違いないのと思いますので。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板