エラー メッセージ "システム ファイルが最新ではない" が繰り返し表示される

解決


もこもこ  2005-05-17 21:53:17  No: 121688

はじめまして、こんにちは。どなたかご教授下さい。

環境:VB6.0  SP5    OS:Win2000,WinXP

VBのディストリビューションウィザードを使用し、
SETUP.EXEを作成し、Win2000,WinXPのPC上でテストを行っているのですが
うまくいきません。

「システムにある一部のシステム ファイルが最新ではないので、
セットアップを続行できません。セットアップでこれらのファイルを
更新してもよい場合は [OK] をクリックしてください。
もう一度セットアップを実行する前に Windows を再起動する必要があります。
システム ファイルを更新しないでセットアップを終了する場合は 
[キャンセル] をクリックしてください。」

上記のエラーメッセージが表示され、「OK」を選択し、
Windows を再起動した後でSETUP.EXEを再開すると、
同じエラーメッセージが再び表示されてしまいます。

いろいろ試してみたのですが、エラーが表示されない場合もあります。
(WinXPのPCは2台(WinXP①、WinXP②)で試してみております。)

①【Win2000のPCで作成したSETUP.EXE】
・Win2000/VB6.0SP5  のPCにてSETUP.EXE起動→エラーメッセージなし。セットアップOK
・WinXP①/VB6.0SP5  のPCにてSETUP.EXE起動→OK
・WinXP②/VB6.0SP5  のPCにてSETUP.EXE起動→OK
・Win2000/VB環境なし  のPCにてSETUP.EXE起動→OK

②【WinXP①のPCで作成したSETUP.EXE】
・Win2000/VB6.0SP5  のPCにてSETUP.EXE起動→エラーメッセージあり。セットアップNG
・WinXP①/VB6.0SP5  のPCにてSETUP.EXE起動→OK
・WinXP②/VB6.0SP5  のPCにてSETUP.EXE起動→NG
・Win2000/①を入れた後  のPCにてSETUP.EXE起動→NG

③【WinXP②のPCで作成したSETUP.EXE】
・Win2000/VB6.0SP5  のPCにてSETUP.EXE起動→エラーメッセージあり。セットアップNG
・WinXP①/VB6.0SP5  のPCにてSETUP.EXE起動→OK
・WinXP②/VB6.0SP5  のPCにてSETUP.EXE起動→OK
・Win2000/①を入れた後  のPCにてSETUP.EXE起動→NG

マイクロソフトのサポートオンラインも参照してみましたが、
どうにもうまくいきません(よくわかりません・・・)。

セットアップ先PCに入っているシステムファイルが最新でないという意味で
エラーメッセージが表示されてしまうのでしょうか??
(システムファイルが何を指しているかもよくわかりません。
「SETUP.LST」の[Bootstrap Files]のことでしょうか?)

配付先のPCのシステムファイルを最新のものにしてからでないと
セットアップが行えないのでしょうか?

エラーを回避するにはどうしたらよいでしょうか、
どなたか教えてください。よろしくお願い致します。


だい  URL  2005-05-17 22:34:11  No: 121689

VB6SP5以降でのトラブルであれば、
[VB] システム ファイルの更新メッセージが繰り返し表示される
http://support.microsoft.com/default.aspx?scid=kb;ja;413232

ではなく、
[PRB] エラー メッセージ "システム ファイルが最新ではない" が繰り返し表示される
http://support.microsoft.com/default.aspx?scid=kb;ja;191096
のほうかと思います。

開発環境に導入されている最新のMDACと異なるバージョンを参照設定した状態で
(たとえば、MDAC2.8をインストールしている環境でADO2.5を参照設定したり)
ディストリビューションを作成していませんか?


もこもこ  2005-05-18 02:08:01  No: 121690

だい様返信ありがとうございます。

教えていただいたURLを参照したところ、
どうも、インストールするDLLファイルが、インストールされる側のPCに既に存在しており
既に存在するDLLファイルの方のバージョンが古いため、インストールする際に
新しいバージョンのファイルに置き換える(更新する)処理がうまくいかないために、
エラーが表示されているようです。

=バージョンの異なる(新しいファイル)=
File1=@imshare6.dll,Runtime,$(DLLSelfRegister),$(Shared),3/1/00 6:00:00 PM,127488,6.0.2.0
File14=@scrrun.dll,Runtime,$(DLLSelfRegister),$(Shared),8/4/04 12:55:26 AM,151552,5.6.0.8820
File21=@mswstr10.dll,Runtime,,,8/4/04 12:55:22 AM,614429,4.0.8905.0
File24=@msjint40.dll,Runtime,,,8/4/04 12:55:20 AM,151583,4.0.8905.0

教えていただいたURLの解決方法を試してみましたが、なかなか状況が改善されませんでした。(私の力不足のため)
また、解決方法についても、個々のPCに依存する所が多いため、配付先のユーザー様に
操作していただくのは難しそうです。。。

とりあえず、対応策として、
なるべく古いバージョンのdllファイルでSETUP.EXEを作成し、
ファイルを更新するメッセージを表示させないようにしたいと思います。


だい  2005-05-18 03:45:36  No: 121691

>File1=@imshare6.dll

InputManですね。
これは、開発環境にセットアップしてしまうと、ライセンスがおかしくなりませんか?(たしかデザインモードで使用できなくなる)

どんなアプリなのか知らないのですが、
これ以外の3つのDLLに関しては配布の必要がないかもしれません。

>File14=@scrrun.dll

Wshの一部なので、IE5以上の環境であれば配布不要です。

>File21=@mswstr10.dll
>File24=@msjint40.dll

Jet4.0関連のファイルなので、Win2000/XPなら配布不要です。

これらは、
配布するなら、DLL個別に配布せず、
Jet4.0SP8やWSH5.6などでまとめて配布したほうがトラブルが少ないでしょう。
http://support.microsoft.com/default.aspx?scid=kb;JA;239114
http://www.asia.microsoft.com/japan/msdn/scripting/default.asp
にあるようにOSごとに内容が違うので、異OSのDLLを問答無用で書き換えるようなことは避けたほうが無難です。

MS社製のDLLに関しては、以下で調べることが可能です。
http://support.microsoft.com/dllhelp/


もこもこ  2005-05-18 05:09:19  No: 121692

今回、SETUP.EXEを作成した経緯といたしまして、

異なる2つのアプリがどちらも使用できるような、ランタイムのみのインストーラー作成の依頼を受け、
空のプロジェクトにて、2つのアプリで参照しているものについてすべて参照し、
ディストリビューションウィザートにて、SETUP.EXEを作成した次第です。

>どんなアプリなのか知らないのですが、
>これ以外の3つのDLLに関しては配布の必要がないかもしれません。

ディストリビューションウィザードにて、含まれたファイルすべてが、
配布時に必要となるのではないのですね。

だい様のおかげで配布時に必要、不必要となるDLLファイルがわかりました。
今一度、配付先の環境(IE,OS等)を確かめて、必要なDLLのみのSETUP.EXEを作成したいと思います。

>異OSのDLLを問答無用で書き換えるようなことは避けたほうが無難です。

危うく関係のないDLLファイルを更新させようとしておりました××

関係のないDLLファイルを除けば、なんとかなりそうです!
だい様のおかげでとっても助かりました!
本当に参考になるアドバイスをありがとうございました!


葉月(A)  2005-05-19 19:26:42  No: 121693

解決しているので余分な発言ですが
2〜3年前(超新人時代)に同じことやらかしました

Xpで開発し、強引にNTにインストールした所・・・
WindowsNTの起動すらしなくなりました(^^;;
あるWindowsのシステムDLLファイルを更新してしまった為です

なのでその時の対策は、各対応PCのOSにあわせて
ディストリビューションウィザードでインストーラを作成しました

その時の経験上・・・(調べたわけではない)
Xpで作成したものは2000以下には無理かと思います
2000で作成したものはNTにも入るようですが
やはりNTにはNTでというのが普通なのかなとも思いました


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加