XP/Vista 以降で VB6 の簡単なインストール システムを作成するにはどうすればよいですか?[閉まっている]
質問
シンプルを徹底的に重視。私はインストーラーを作成したことがないので、あまり学ぶ必要はないと思っています。ファイルの山を渡すと、ファイルをどこに置くか賢く推測してくれるシステムが理想的です。
さあ、一般質問に答えてください。
ただし、私の場合、追加の制約がいくつかあります。インストールされるプログラムは VB6 (または 5?) およびそれより前のバージョンの VB で書かれているため、 ない すぐに更新される予定です。実行中のインストールがあり、プレイするクリーン VM があるので、次のループを実行します。インストールを実行し、壊れている箇所を見つけて修正し、それをインストーラーに追加し、VM を元に戻して、再試行します。誰かがより良いアプローチを持っている場合は、提案を歓迎します。
私 しなければならない XP で動作させることはもちろんですが、新しいバージョンの Windows でも動作するものをぜひ用意したいと思っています。
他のヒント
私は数年前、Vista が登場する前に InnoSetup を使用したことがあり、その時はとても満足していました。インストールするファイルはいくつかと、[スタート] メニュー アイコンだけでした。とても効果的で、学ぶのも簡単でした。
依存関係ウォーカー インストーラーにどの DLL が欠けているかを見つけるのに非常に役立ちます。DLL がわかったら、次のコマンドを使用して、その DLL がどのマージ モジュールに含まれているかを見つけることができます。 マージモジュールファインダー.
私は NSIS と協力してきましたが、その小さな複雑さのいくつかを克服した素晴らしいシステムです。無料で、大量のプラグイン機能を提供し、必要なことはすべて実行できました。
プログラムの完全なセットアップ パッケージを作成すること自体が、ほとんど主題領域です。考慮すべき要素はたくさんありますが、私たちのほとんどはもう Windows 95 を実行していません。世界はかつてほど単純ではありません。
対処しなければならないことがたくさんあり、これらの「セットアップ」問題の中にはプログラムの変更も必要なものもあります。たとえば、Vista UAC が登場したとき、人々にとって新しいものに思われた「保護されたフォルダー」という概念。彼らは全員管理者か何かとして実行していたと思いますか?最も単純な形では、プログラム (別名「プログラム ファイル」) の EXE の隣に書き込み可能なファイルを置かないようにすることを意味します。
もう 1 つの要因は、レジストリの使用方法が変化したことです。レジストリの仮想化については話していませんが、それも一部ではあります。ただし、COM 登録はマシンごととユーザーごとの両方で行うことができ、UAC をオフにしても問題が発生する可能性があります。見る Windows Vista SP1 でのユーザーごとの COM 登録と UAC による昇格プロセス. 。その結果、セットアップ パッケージは regsvr32 を実行すべきではありません (または、COM ライブラリの self-reg エントリポイントを呼び出しません)。「備考」を参照してください。 SelfReg テーブル.
Windows インストーラーは の ほとんどの場合、先に進む方法です。VB6 プログラマは、MSI パッケージを作成するための Visual Studio インストーラ 6.0 バージョン 1.1 を無料でダウンロードできます。VFP の記事の「COM サーバー」を参照してください。 Visual FoxPro 6.0 アプリケーションを配布するための Microsoft Visual Studio インストーラーの使用 いくつかの貴重な情報を得るために。
これは最も簡単なオプションではありませんが、VSI 1.1 には基本を正しく理解するのに役立つ VB セットアップ ウィザードがあります。[CommonAppData] サブフォルダーの作成やそのサブフォルダーに対するEveryone 権限の設定などの高度な操作は、IDE の外部のビルド後の手順で行う必要があります。そこで、Orca やビルド後のインストーラー スクリプトに頼ることなく、より詳細に制御できるサードパーティ ツールが役立ちます。
スクリプト化された「レガシー」インストーラーを作成している人たちは、追いつくために努力していますが、スクリプトはますます複雑になっています。結果は時々不確かです。Windows 7 には、独自の新しい問題がいくつか導入されています。
ClickOnce は実際には VB6 にとって最適なオプションではありませんが、多くのプログラムの XCopy インストールに正規フリー COM を使用できないというわけではありません。Reg-free COM は、さらに言えば、インストーラー パッケージで使用するのに適したオプションです。
したがって、最終的には、VB6 プログラムを展開する「最も簡単な」方法は、おそらく、スタート メニューのショートカットを作成するスクリプトを起動する自己解凍 EXE にラップされた正規フリーの COM XCopy パッケージを使用することになるでしょう。ショートカットなしで生活できるのであれば、これはさらに簡単です。必要な場所にパッケージを解凍するだけです。
見る 私のマニフェストを作成する または、reg-free COM パッケージ化のための代替ツール。
これには、ターゲット システムが XP (できれば SP2) 以降を実行している必要があります。ここで考えられる唯一の不具合は、XP SP3 まで XP には VB6 SP6 ランタイムが含まれていなかったため、最初に VB6 SP5 ランタイムに対してプログラムをテストする必要があることです。さて、もう一つの不具合:ActiveX EXE をこの方法で使用することはできませんが、依然として登録が必要です。
私のアドバイスはこれです。インストーラーはできるだけシンプルにするようにしてください。Windows インストーラーは非常に複雑なソフトウェアであり、正常に動作しない場合、何が起こっているのかを把握するのが難しい場合があります。ソース .msi ファイルがなくなったファイルを修復しようとする Windows インストーラーの無限ループを誰もが経験したことがあると思います。
ほとんどの場合、Windows インストーラーを使用することは、ナットを割るために大ハンマーを使用するようなものです。
私は自分の仕事には InnoSetup を使用し、仕事では (私の意志に反して) InstallShield を使用しています。シンプルなスクリプトベースのインストーラーから始めて、正当な理由がある場合にのみ Windows インストーラーを使用してください。
Windows インストーラー以外の一部のセットアップ ツール (InnoSetup など) では、GAC へのアセンブリのインストールのサポートが提供されていない場合があることに注意してください。
私 使用済み to LOVE イノセットアップ。「慣れている」ことを強調します。
単一ファイルのインストーラーを実行すると (通常行うことです)、実際のセットアップ プログラムが temp フォルダーの下のフォルダーに解凍され、実行が試行されます。問題は...一部のウイルス対策プログラムではこれが許可されていません。
著者はそれを承知しており、それについて何もすることを拒否しています。フォルダー名はランダムであるため、ウイルス対策プログラムが使用する除外リストに追加することはできません。
また。作成者はこのことを認識しており、インストール中にウイルス対策プログラムをオフにするようユーザーに指示することを提案しています。(そんなことが起こるみたいに)