開発機はWindows7ProfessionalでデータベースはOracle11g、ユーザークライアントはWindowsXP Professional SP3でOracleクライアントをインストールしてあります。開発機でビルドしたモジュールをユーザークライアントで動作させると、下図のようにエラーが出力され、動作しません。逆にWindowsXP上でビルドしたモジュールはキチンと動作しますし、そのモジュールはWindows7上でも動作します。毎度WindowsXPを使ってビルドしていられないので、どのようにすればWindows7でビルドしたモジュールをWindowsXP上で動作させることができるでしょうか?ちなみにビルドしたモジュールはWindowsXPの互換設定をしています。よろしくお願いいたします。
No.5ベストアンサー
- 回答日時:
そちらで現在公開している情報と全く同じ環境で、以下のコードをWin7 32bit vb2005にてコンパイルを行いました。
※Oracle.DataAccessを参照設定に追加
Imports Oracle.DataAccess.Client
Public Class Class1
Public Shared Sub Main()
Dim l_strCnn As String = "User Id=ユーザID;Password=パスワード;Data Source=TNS設定名;Connection Timeout=900;Pooling=False;Min Pool Size=10;Validate Connection=true;"
Try
MsgBox("1.起動")
Using l_oraCnn As New OracleConnection(l_strCnn)
MsgBox("2.接続開始")
l_oraCnn.Open()
MsgBox("3.接続中")
l_oraCnn.Close()
MsgBox("4.接続終了")
End Using
MsgBox("5.終了")
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
End Class
コンパイル後、「Test.exe」と「Oracle.DataAccess.dll」を抜き出し実行を行うと、こちらの環境ではWin7でもXPでも正常に動作を行うことが出来ました。
ndoxxさんの環境では「2.接続開始」まで行かないって事ですよね?
OracleClientのバージョンが一致しているのにインスタンスが行えないとなると、、、
あとはFramework本体を疑うしかないかな・・・パッチの状況とか・・・
http://www.atmarkit.co.jp/ait/articles/1210/26/n …
この回答への補足
1050YEN様、ありがとうございました、解決しました。ODP.NETのバージョン違いのようでした。「Oracle.DataAccess.dll」をXPクライアントのパソコンからコピーして開発機Windows7の適当なフォルダに格納し、ビルド時の参照ライブラリをそのフォルダ内の「Oracle.DataAccess.dll」にしたところ、そのモジュールはXPクライアントで正常に動作しました。色々ご教授頂き真にありがとうございました。感謝いたします。
補足日時:2013/05/24 11:17No.4
- 回答日時:
内容を確認いたしました。
一つ実験をしてもらえますでしょうか?
1.Win7でコンパイル
2.コンパイル後に出力先フォルダに存在するexe/dllファイル等を、全てXP端末にコピー
3.「XP端末にコピーしたExeの階層」にWin7からコピーしたOracle.DataAccess.dllがあると思いますが、
【XP端末の「C:\app\《何らかのユーザ》\product\11.2.0\client_1\ODP.NET\bin\2.x\」】
からOracle.DataAccess.dllをコピーして、exeファイルの階層に存在するdllとOracle.DataAccess.dllを差し替え
4.XP上でアプリケーションを起動
もしexeファイル階層にOracle.DataAccess.dllが配置されていない場合は、、、
この実験は無意味ですが・・・
因みに・・・
>ビルドで出来上がったモジュールのプロパティで互換性でWindowsXPSP3にチェック
・EXEファイルのプロパティ
→互換性タブ
→互換モードでこのプログラムを実行する
→WindowsXP(ServicePack3)
ということですね?
これはWin7端末実行時の挙動設定ですので、XPで実行するときは無関係ですので設定は不要だと思いますよ。
No.3
- 回答日時:
解決策は現状ではわかりません。
状況整理と確認です。
---------
-- 前提
---------
・Windows7 WindowsXPは共に32bitである
・Windows7 WindowsXPは共にOracleClient11gの同じバージョン(リビジョンを含む)がインストールされている
---------
-- 状況
---------
・Windows7でコンパイル→WindowsXPでの動作「×」
・WindowsXPでコンパイル→Windows7での動作「◎」
ということですよね?
因みに私の今担当している開発プロジェクトは、上記前提と同様でして、コンパイルマシンはWin7で行っていて、クライアントアプリの配布は配布はClickOnceを使用しています。
もちろん稼動は正常にしています。
コンパイル方法については、特段「XP用に」としての設定をすることはしていません。
そこで逆に質問です。
※質問1
>ちなみにビルドしたモジュールはWindowsXPの互換設定をしています。
とありますが、具体的にどのような設定を行っているのでしょうか?
※質問2
OracleClient11gは、Win7もXPもリビジョンまで(OracleClient 11.0.2.0等)が全く同じということですよね?
インストールされている正確なバージョンを、リビジョンまで知りたいです。
※質問3
接続に利用しているクラスはどのネームスペース配下のクラスを利用していますか?
・Oracle.DataAccess.Client
・System.Data.OracleClient
・System.Data.Odbc
・System.Data.Common
※質問4
デバッグコードを挿入できるのであれば、アプリケーション起動時の先頭で MsgBox(1)というコードを入れたとき、メッセージボックスが表示されますか?
(アプリケーションが正常後にエラーが起きているか、または起動自体が出来ないのかを切り分けしたい)
※質問5
業務Exeとは別に簡素なExeを作成(接続オープン・クローズのみ)を作成して、状況を確認することは出来ませんか?
※質問6
Microsoftの.net Framework以外に、参照設定(サードパーティ製品等)を行っていませんか?
(Office製品の参照設定がある場合は、Win7とXPのバージョンが異なると問題があると思います。)
この回答への補足
1050YEN様、ご回答ありがとうございます。逆質問にお答えいたしますのでよろしくお願いいたします。
ご質問1、ビルドで出来上がったモジュールのプロパティで互換性でWindowsXPSP3にチェックを入れています。ご質問2、11.2.0.1.0です。ご質問3、Oracle.DataAccess.Clientです。ご質問4、MessageBOX.Showを入れました。実行させるとメッセージボックスは表示されます。Oracleコネクションをインスタンスするところでエラーがでてこけます。ご質問5、状況を確認したところ同様のエラーとなります。ご質問6、他の参照設定はおこなっていません。
以上、すみませんが、よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(OS) Windows7が出た頃に使っていたPCは、現在と比べ性能が低いです。 低い性能のWindows7P 9 2022/04/23 03:21
- フリーソフト 編集ソフトのムービーメーカーについて教えてください 3 2023/02/25 16:20
- Windows 10 Visual StudioとVisual C++ Build Toolsについて 1 2023/04/16 03:42
- Windows Vista・XP やっぱり現代のPCにWindowsXPを入れるのは無理なのでしょうか? 4 2022/08/03 09:58
- Windows Vista・XP WindowsXPを最近のパソコンにインストール出来ますか? 今使用している10で動いているパソコン 14 2023/05/06 08:23
- アプリ iOSのアプリ開発後について 3 2022/05/04 19:08
- Visual Basic(VBA) パーソナルXLSBのfuctionを呼び出すと「Functionが定義されていません」のエラーになる 2 2022/08/22 22:51
- Visual Basic(VBA) vba メモリ節約 3 2022/09/16 21:45
- Windows Vista・XP Windowsxpってどうやってインストールするのですかcd入れてインストールしたら青いコマンドみた 6 2023/05/16 16:10
- その他(ソフトウェア) ソフトが異常終了します 1 2022/08/28 01:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HelloWorldのソースがコンパイ...
-
配列に対してsetText()は使えな...
-
exlipseでデバックエラーが発生...
-
.jarファイルの中身って書き換...
-
「識別子がクラス名でも名前空...
-
C言語について。
-
-deprecationとは?
-
TeXで図を挿入できません.助け...
-
TeXで索引作成
-
javaの簡単なソースがコンパイ...
-
Javaのコンパイル結果が表示さ...
-
html上で、バッチやexeファイル...
-
Eclipseのアンインストールの仕方
-
Eclipseで、プロジェクト名のと...
-
マイクラjavaでForgeを入れたい...
-
eclipse実行ができない
-
正しいURL指定しているにもかか...
-
javaでuseBeanエラーの解決方法
-
vs codeはオフラインでも使用で...
-
eclipseのショトカットキー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
.jarファイルの中身って書き換...
-
IIS環境でJAVAを使用したい
-
javaが文字コードの影響でコン...
-
Eclipse3.5EEでJavaのコンパイ...
-
コンパイルエラーに出てくる、i...
-
サクラエディタでjavaのプログ...
-
Javaのコンパイル結果が表示さ...
-
javax.servlet は存在しません...
-
eclipseの構文エラーについて
-
javaの簡単なソースがコンパイ...
-
「識別子がクラス名でも名前空...
-
eclipseの設定のJREとコンパイ...
-
dokojavaのコンパイルについて
-
逆コンパイルの見方について
-
exlipseでデバックエラーが発生...
-
eclipseについて
-
classファイルを元に戻す
-
日本語対応 逆コンパイラについて
-
コンパイルができないのですが...
-
java サーブレットのサンプルプ...
おすすめ情報