XP(VBExpress2008インストール済み)のPCだとエラーになる。

タグの編集
投稿者 29°  (学生) 投稿日時 2010/8/24 11:44:57
Windows 7(VBExpress2010)で作ったアプリケーションが、つい先日まではXP(VBExpress2008)の入ったPCでも動いていたのに、プログラムを修正してテストしたらExentType:clr20r3 P4:System.Drawing P9:System.invalidoperationexceptionと表示され起動しなくなってしまいました。
Windows 7(VBExpress2010インストール済み)・Vista(VBExpress2010インストール済み)のPCでは、普通に起動します。
いずれも、.Net Framework 4.0が入っています。

どなたか分かる方いましたらご教授お願いいたします。
投稿者 よねKEN  (社会人) 投稿日時 2010/8/24 13:09:14
質問内容に不明点が多いので、まずは(1)~(8)の質問にわかる範囲で答えてください。
今の情報だけではなかなか的確なコメントは難しいと思います。

> Windows 7(VBExpress2010)で作ったアプリケーションが、

(1) Windows7は32bit版ですか?(それとも64bit版ですか?)
(2) 作ったアプリケーションとはどういったものですか?
(3) そのアプリは.NET Framework本体以外に何か外部のライブラリなどを利用していませんか?
(4) ターゲットとする.NET Frameworkのバージョンは何になっていますか?
   (新規プロジェクトでデフォルト設定なら、.NET Framework4 Client Profileがターゲット、
    VB2008で作ったプロジェクトでVB2008でデフォルト設定のまま作ったものなら、.NET Framework3.5がターゲットです)

> つい先日まではXP(VBExpress2008)の入ったPCでも動いていたのに、

(5) ターゲットの.NET Frameworkのバージョンとこの環境に入っている.NET Frameworkのバージョンは一致していますか?あるいは、動いていた時期から、動かなくなった時期の間にこのXPのPCで何か行っていませんか?

> プログラムを修正してテストしたら

もっと詳しく説明してください。
(6) その修正前はXP環境でも問題なく動作したのでしょうか?
(7) どんな修正をしたのでしょうか?
(8) 作ったプログラムはXP環境にどのように配布したのでしょうか?

> ExentType:clr20r3 P4:System.Drawing P9:System.invalidoperationexceptionと表示され起動しなくなってしまいました。

エラーメッセージは表示されたまま極力正確に記載してください。
(コピーできる場合は、コピーしたテキストをそのまま貼り付けるのがよいです)
投稿者 よねKEN  (社会人) 投稿日時 2010/8/24 13:24:13
以下の私の説明が不十分で分かりづらいので補足します。

>    (新規プロジェクトでデフォルト設定なら、.NET Framework4 Client Profileがターゲット、
>    VB2008で作ったプロジェクトでVB2008でデフォルト設定のまま作ったものなら、.NET Framework3.5がターゲットです)

・VB2010で新規プロジェクトを作った場合、特に何も設定を変更していなければ、
動作させるPCには.NET Framework4 (もしくは、.NET Framework4 Client Profile)が必要です。
・過去にVB2008で新規プロジェクトとして作ったプロジェクトを、VB2010で開発を進めているような場合は、特に何も設定を変更していなければ、動作させるPCいは.NET Framework3.5が必要です。

という意味です。
投稿者 29°  (学生) 投稿日時 2010/8/24 13:48:25
情報が少なくてすみません。。丁寧な回答ありがとうございます。

>(1) Windows7は32bit版ですか?(それとも64bit版ですか?)
7,Vista,XP全ての環境で32bitです。

>(2) 作ったアプリケーションとはどういったものですか?
データを入力したら、Excelにデータを書き出すソフトです。
(成績表の入力、管理ソフトです。)

>(3) そのアプリは.NET Framework本体以外に何か外部のライブラリなどを利用していませんか?
Excelのライブラリーを参照設定しています。
(最初にビルドしたときにExcel読み書きが出来ていたので、問題ないと思います。)

>(4) ターゲットとする.NET Frameworkのバージョンは何になっていますか?
最初VB2008だったので、3.5でした。
使えなくなってから、4.0にして試してみましたが、だめでした。


>(5) ターゲットの.NET Frameworkのバージョンとこの環境に入っている.NET Frameworkのバージョンは一致していますか?あるいは、動いていた時期から、動かなくなった時期の間にこのXPのPCで何か行っていませんか?
XPには、1.1、2.0、3.0、3.5、4.0の.NET Frameworkがインストールされています。
ちなみに、4.0のみ入ってるXPのパソコンでも動きませんでした。

>もっと詳しく説明してください。
>(6) その修正前はXP環境でも問題なく動作したのでしょうか?
修正前は、4台から5台くらいのXPのパソコンで動かせました。

>(7) どんな修正をしたのでしょうか?
Excelの書き込まれるセルがおかしかったので、セル番号の修正と、
タブページを追加してWebbrowserを配置し、作者(私)のHPにアクセスできるようにしました。
iconを付けました。

>(8) 作ったプログラムはXP環境にどのように配布したのでしょうか?
Releaseフォルダにビルドされた実行ファイルをUSBやインターネット経由で送って実行しました。

> ExentType:clr20r3 P4:System.Drawing P9:System.invalidoperationexceptionと表示され起動しなくなってしまいました。
出てきたダイアログです。

問題が発生したため、成績評価 を終了します。 ご不便をおかけして申し訳ありません。
作業途中であった場合、その情報は失われた可能性があります。
この問題をMicrosoftに報告してください。
...以下エラー報告の送信について書かれている。

この報告に含まれるデータの参照をクリックすると、

エラー署名
EventType : cl20r3   P1 : sei.exe   P2 : 2.3.0.1   P3 : 4c732e97
P4 : system.drawing   P5 : 4.0.0.0   P6 : 4ba1e086   P7 : 356   P8 : 42d
P9 : system.invalidoperationexception

詳細の報告
このエラー報告には、問題が発生した時の成績評価の状況に関する情報、オペレーティングシステムのバージョン、お使いのコンピュータのハードウェア情報、ソフトウェアのプロダクトID、コンピュータのIPアドレスが含まれます。
...以下Microsoftの個人情報、送信データの取り扱いについて書かれている。

というのが出てきます。
投稿者 29°  (学生) 投稿日時 2010/8/24 13:52:13
訂正です。

>(5) ターゲットの.NET Frameworkのバージョンとこの環境に入っている.NET Frameworkのバージョンは一致していますか?あるいは、動いていた時期から、動かなくなった時期の間にこのXPのPCで何か行っていませんか?
動かなかったXPには、1.1、2.0、3.0、3.5、4.0の.NET Frameworkがインストールされています。
ちなみに、4.0のみ入ってるXPのパソコンでも動きませんでした。
動いていた時期から動かなくなった日まで5日ほどでしたが、パソコンへの変更は特にありません。
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2010/8/24 16:06:58
# 解決に直接役立ちそうな情報は持ち合わせていませんが…。


> Releaseフォルダにビルドされた実行ファイルをUSBやインターネット経由で送って実行しました。
デバッグビルドだと、何か変化はありますか?

可能であれば、ミニダンプファイルからエラー内容をトレースできないでしょうか。
Visual Studio 2010 Diagnostic Tool 
http://visualstudiogallery.msdn.microsoft.com/en-us/e8649e35-26b1-4e73-b427-c2886a0705f4
ttp://blogs.msdn.com/debugger/archive/2009/12/30/what-is-a-dump-and-how-do-i-create-one.aspx

Debug Diagnostic Tool v1.1
http://keicode.com/iis/iis503.php


> エラー署名
> EventType : cl20r3   P1 : sei.exe   P2 : 2.3.0.1   P3 : 4c732e97
> P4 : system.drawing   P5 : 4.0.0.0   P6 : 4ba1e086   P7 : 356   P8 : 42d
> P9 : system.invalidoperationexception
.NET ランタイムのエラーが報告されていますね。
イベントログ(Application)にも記録されているかも。

P1~P3は、問題が発生したアプリケーションの実行可能ファイル(EXE や DLL)を表しています。

P1 はファイル名。この場合は "sei.exe" です。
P2 はバージョン。この場合は "2.3.0.1"。
P3 はタイムスタンプ。"4c732e97" は 2010/08/24 02:29:43 だと思います。

P4~P6 は、障害を発生せているモジュールの情報です。

P4 はモジュール名。この場合は "System.Drawing" アセンブリ。
P5 はバージョン。"4.0.0.0" ですね。
P6 はタイムスタンプ。"4ba1e086" は 2010/03/18 08:12:54 でしょうか。

P7 以降は良く分かりません。ここが肝心なのでしょうけれども…。
例外コード(16進数)、オフセット(16進数)、追加情報かな?


> いずれも、.Net Framework 4.0が入っています。
正確には、「.NET Framework 4」です。

http://journal.mycom.co.jp/articles/2009/09/01/vs2010/index.html
》 従来は小数点以下のバージョン番号を使用してきたが、
》 .NET Framework 4からはSilverLightやWindowsなどと同様に、
》 製品のバージョンとしては小数点以下を使用しない方針を示した。
投稿者 29°  (学生) 投稿日時 2010/8/24 19:00:19
>デバッグビルドだと、何か変化はありますか?
P3のとこがかわっただけで、他に変化はありませんでした。

Debug Diagnostic Tool v1.1を使ってみましたが、うまく拾ってくれませんでした。(反応無しでした…)

>正確には、「.NET Framework 4」です。
今までと違うんですね。勉強になりました。
わかりやすくなっていいですね。


動いてくれないとかなりショックなので、いろいろと設定を変えて試してみようと思います。
また何かあったら書き込ませていただきます。
投稿者 YuO  (社会人) 投稿日時 2010/8/25 03:53:53
Application.ThreadExceptionイベントや,
AppDomain.UnhandledExceptionイベントで,
例外ログを吐かせてみてはどうでしょうか。

元々のコードにあったバグが顕在化しただけだと思うので,ログ情報等を収集してちゃんとデバッグしてやるのがよいかと思います。


MSDN: Application.ThreadException イベント (System.Windows.Forms)
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.application.threadexception.aspx
MSDN: AppDomain.UnhandledException イベント (System)
http://msdn.microsoft.com/ja-jp/library/system.appdomain.unhandledexception.aspx
投稿者 29°  (学生) 投稿日時 2010/8/25 13:49:09
みなさんいろいろとありがとうございます。
System.Drawing.Designがエラーになっていたようで、ColorDialogの削除とそれに関連するコードをコメントアウトしてみたら動きました。
原因はよくわかりませんが、デバッグとエラー処理に関してはわからないことが多くあったので勉強しようと思います。

XPのみでエラーになるのはプログラムの問題なのでしょうか?
ソースの問題点などを見てもらえる方いましたらお願いします。