タイトル : Re^6: VB6の再インストール時にService Packエラーが出る 投稿日 : 2018/02/22(Thu) 19:05 投稿者 : 魔界の仮面弁士
Windows 2000 以降では Windows File Protection が導入されているため、 システムコンポーネントの手動差し替えは行うべきではありません。 https://support.microsoft.com/ja-jp/help/222193/ ファイルによっては、差し替えても自動的に復元してしまうことがあります。 > 「dispex.dll」「mshflxgd.ocx」が登録されませんでした 上記のエラーメッセージは、一字一句違わず、正確な内容なのでしょうか? 両方のファイルを記載したメッセージが 1 回だけ表示されたのか、それとも 実際には、2 つ以上のエラーメッセージが表示されていたのかが気になります。 > SP6のセットアップが不完全だからですね。 より新しいバージョンの DLL が入っていれば、そのファイルの更新処理はスキップされるとは 思いますが、もしもその DLL の依存ファイルが古いものになっていた場合には、 インストールに失敗する可能性があるかもしれません。 とはいえ、それぞれの依存関係やレジストリ情報の差異を追跡するのは非常に難しいです。 主要ランタイムである MSVBVM60.DLL だけでも、これだけのバージョンがあるわけですし…。 http://hanatyan.sakura.ne.jp/yybbs/read.cgi?no=38 長引くようであれば、やはり OS ごとクリーンインストールすることを検討してみてください。 お役に立てなくて済みません。 > 「dispex.dll」「mshflxgd.ocx」を何とか手動で登録できないものでしょうか? できたとしても、その行為はお奨めしません。 手元の環境で dispex.dll セキュリティ設定を確認してみたところ、 たとえ [Administrators] グループや [SYSTEM] ユーザーであったとしても、 このファイルは読み取りと実行しか許可されていないようです。 このファイルを差し替える権限を既定で有しているのは [TrustedInstaller] だけでしたので、 やはりインストーラー以外での差し替えは想定されていないように見えます。 手動での差し替えは避けるべきでしょう。 hhttps://freesoft.tvbok.com/windows7/general/trustedinstaller.html 問題は、何故インストーラーが失敗したのかですが…今のところ原因は不明です。 dispex.dll は確かにランタイムの一部として提供されていますが、 Windows 2000 あたりからは、OS に最初から含まれているでしょうから、 インストール対象のファイルにはならない気がするのですけれども。 一方 MShflxgd.ocx の方は、どうやらシステムコンポーネントからは外れているらしく、 権限上は、管理者であれば差し替えられそうに見えます。とはいえ、このファイルにも 依存ファイル(MSHFGJPN.dllとか)があるわけなので、仮に、ファイルやレジストリを 手動で上書きできるのだとしても、バージョン番号を考慮せずに手動配置するのは 避けたほうが良いと思いますよ。 |