”VB6.0(SP5)” で作成したアプリケーションの配布にあたって、お伺いしたいことがあります。
客先から「今回のアプリのインストール後に、既存のVBシステム等に障害が発生しないように」と厳しく通達されています。(当然ですが…)
しかし、インストールするPCは千差万別。
どのようなシステムが既存しているかはそれぞれに違いますし
すべてのPCに完璧な動作保障は無理なのでは?と考えます。
(こんなことは言ってはいけないんですけど…)
そこで「このファイルがある場合はインストールしないように」という制限事項を付けられれば、とは思うのですが
そのような判断は可能でしょうか?
”○○.DLLがあるからこれはVB4.0のシステムが入ってる!”等と
判断できるものなのでしょうか?
なにかご存知の方、良い案をお持ちの方
いらっしゃいましたらご教示いただけないでしょうか?
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
>すべてのPCに完璧な動作保障は無理なのでは?と考えます。
おっしゃる通りだと思います。
ただ、極力既存のVBシステムに影響を与えない方向でインストールすることは可能かもしれません。
(ただし、今回インストールするアプリケーションの動作は保証されないでしょうけど)
配布メディアをディストリビューションウィザードで作る場合は、setup.lstを弄ったりディストリビューションウィザード自体を弄ったりすることでカスタマイズが可能です。
...\Microsoft Visual Studio\VB98\Wizards\PDWizard\Setup1
がディストリビューションウィザードの本体です。
(カスタマイズする時はフォルダごとバックアップを取った上でやりましょう)
>”○○.DLLがあるからこれはVB4.0のシステムが入ってる!”等と判断できるものなのでしょうか?
も(やろうと思えば)可能ですし、所謂"DLL Hell"を極力避けるなら、必要なDLLを全てEXEと同じフォルダ(アプリケーションフォルダ)に配置すればいいだけですね。
これは、DLLの検索順がアプリケーションフォルダ→システムフォルダとなっているためで、これを利用してパッチを当てているソフトも多いのです。
詳しくはLoadLibrary()のヘルプを読んでみてください。
問題はActiveX DLLやOCXなどレジストリに登録する必要があり、かつ下位やバージョン違いのモジュールを配布する必要がある場合ですね。
とにかく、配布メディアのsetup.lstを見て配布される予定のファイルとその種類、レジストリ登録の有無を調査してからになると思います。
ありがとうございます。大変勉強になります。
配布メディアはディストリビューションウィザードで作成します。
ウィザードで設定できるDLL等のセットアップ先は(AppPath)としているのですが…
> 問題はActiveX DLLやOCXなどレジストリに登録する必要があり、かつ下位やバージョン違いのモジュールを配布する必要がある場合ですね。
そこなんです!
> とにかく、配布メディアのsetup.lstを見て配布される予定のファイルとその種類、レジストリ登録の有無を調査してからになると思います。
setup.lstを見てみます。
…と言ってもぱっと見てもよく判らないのですが f(^_^;)
がんばって調べてみます。
そしてレジストリ登録要のファイルがインストールするPCに
「既存してたらインストール不可!」
とでもするしかないのでしょうかねぇ…。ふぅ~
No.1
- 回答日時:
昔からの"DLL Hell"と言われている問題ですね。
> ”○○.DLLがあるからこれはVB4.0のシステムが入ってる!”等と
> 判断できるものなのでしょうか?
これは非常に難しいです。
上位互換という大義のために、違うバージョンの部品が同じファイル名で配布されています。
システムに尋ねてみるにしても、インストーラ経由でシステムディレクトリに入っている分は検出できますが、オンラインソフトなどであちこちに置かれたものは対象外で、そちらがシステムに読み込まれる/読み込まれないのも、その時々のアプリケーションの起動順によって決まったりします。
Vectorなどで配布されるオンラインソフトですと、
「このソフトを使用するには、VB6.0のランタイムが必要です。」
と注意書きを施して、ユーザーに自己責任でランタイムのインストールを行ってもらう方法が主流です。
製品の場合は動作環境にでも書いてしまうとかしか逃げ道が無いかも。
ありがとうございます。
> 注意書きを施して、ユーザーに自己責任でランタイムのインストールを行ってもらう方法が主流です。
本当にその通りなのです。
ですが、諸般の事情により「ユーザーの自己責任」が問えないんですよ(泣)
「開発元責任」が重視されてしまって
何か問題があったら当方へ苦情がきちゃうんですよね~。
うまい逃げ道が見つかればいいんですが…
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(セキュリティ) 役所など、情報系システムのセキュリティが弱くても業務システムに問題ないか 3 2022/11/02 16:38
- ドライブ・ストレージ M.2 NVME SSDがWindowsからはアクセスできるのにBIOSで認識されない 8 2023/03/16 21:46
- デスクトップパソコン キャプチャーボードDRECAP DC-HC4のドライバー 1 2022/05/30 15:40
- その他(メールソフト・メールサービス) メールソフトを教えてください 1 2023/03/28 23:32
- 画像編集・動画編集・音楽編集 【急】【Zbrush】3DCG初心者です。ノートPCでのZbrush動作環境につきまして 1 2023/08/19 17:38
- 中古パソコン 中古PCを売る時、OS(Windows11)はどんな状態にするのが親切ですか? 4 2022/12/15 17:08
- その他(プログラミング・Web制作) プログラムの起動、利用について、使用期間を設定する方法 3 2023/08/06 21:03
- サーバー Laravelをレンタルサーバーにインストールするにはどうすればいいですか? 2 2022/06/29 10:17
- その他(クラウドサービス・オンラインストレージ) Onedriveで実現したい事。2台のPC間で。 2 2023/04/10 20:42
- WordPress(ワードプレス) Wordpress 複数プラグインの不具合? 1 2022/10/09 21:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB6(SP5)+OO4OでCreateObjectが...
-
VB.NET(2017)で インストーラを...
-
VB.NETでSPREADの設定方法
-
VB2013で作成したプログラムの...
-
ExcelCreatorについて
-
Visual Studio 2005は64ビットO...
-
う~ん…。
-
6.0から2005へのアップグレード
-
Product Codeの変更法は?
-
MSDNのセットアップ方法(ヘル...
-
VB.NET で作られたソフト...
-
VBAでArrayListを使う為の「msc...
-
VB6で作成したアプリをパッケー...
-
VB6のアプリケーションの配布
-
oracleクライアントをインスト...
-
vba 時間の引き算 例えば 15:00...
-
アウトルックが起動しているか...
-
Designer.vbは直接コードをいじ...
-
Visual Studio 「AnyCpu」について
-
Windows PowerShellでC言語を実...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB6(SP5)+OO4OでCreateObjectが...
-
VBAでArrayListを使う為の「msc...
-
VB.NETでSPREADの設定方法
-
[VB.net] ExcelへのQRコード出...
-
VB6のアプリケーションの配布
-
VB.NET で作られたソフト...
-
Product Codeの変更法は?
-
VB6で作成したアプリを配布する...
-
ビルドした.exeファイルは.NE...
-
VB6.0で作成したexeファイルが...
-
.NETの標準ライブラリでExcelフ...
-
C#で作ったプログラムの配布が...
-
う~ん…。
-
次のクラスは登録されていませ...
-
MSDNのセットアップ方法(ヘル...
-
VB.Netの違い
-
VB.NET(2017)で インストーラを...
-
6.0から2005へのアップグレード
-
アドインファイルの移動(再)
-
Visual Studio 2005は64ビットO...
おすすめ情報