はじめまして、こんにちは。どなたかご教授下さい。
環境: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のシステムファイルを最新のものにしてからでないと
セットアップが行えないのでしょうか?
エラーを回避するにはどうしたらよいでしょうか、
どなたか教えてください。よろしくお願い致します。
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を参照設定したり)
ディストリビューションを作成していませんか?
だい様返信ありがとうございます。
教えていただいた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を作成し、
ファイルを更新するメッセージを表示させないようにしたいと思います。
InputManですね。
これは、開発環境にセットアップしてしまうと、ライセンスがおかしくなりませんか?(たしかデザインモードで使用できなくなる)
どんなアプリなのか知らないのですが、
これ以外の3つの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/
今回、SETUP.EXEを作成した経緯といたしまして、
異なる2つのアプリがどちらも使用できるような、ランタイムのみのインストーラー作成の依頼を受け、
空のプロジェクトにて、2つのアプリで参照しているものについてすべて参照し、
ディストリビューションウィザートにて、SETUP.EXEを作成した次第です。
>どんなアプリなのか知らないのですが、
>これ以外の3つのDLLに関しては配布の必要がないかもしれません。
ディストリビューションウィザードにて、含まれたファイルすべてが、
配布時に必要となるのではないのですね。
だい様のおかげで配布時に必要、不必要となるDLLファイルがわかりました。
今一度、配付先の環境(IE,OS等)を確かめて、必要なDLLのみのSETUP.EXEを作成したいと思います。
>異OSのDLLを問答無用で書き換えるようなことは避けたほうが無難です。
危うく関係のないDLLファイルを更新させようとしておりました××
関係のないDLLファイルを除けば、なんとかなりそうです!
だい様のおかげでとっても助かりました!
本当に参考になるアドバイスをありがとうございました!
解決しているので余分な発言ですが
2〜3年前(超新人時代)に同じことやらかしました
Xpで開発し、強引にNTにインストールした所・・・
WindowsNTの起動すらしなくなりました(^^;;
あるWindowsのシステムDLLファイルを更新してしまった為です
なのでその時の対策は、各対応PCのOSにあわせて
ディストリビューションウィザードでインストーラを作成しました
その時の経験上・・・(調べたわけではない)
Xpで作成したものは2000以下には無理かと思います
2000で作成したものはNTにも入るようですが
やはりNTにはNTでというのが普通なのかなとも思いました
ツイート | ![]() |