インストーラーは正確に何をし、なぜ必要なのですか?


34

これはおそらく今日の初心者の質問です:

だから私はこのゲームを書いた。

これで、作業を行う.exeファイル、美しい、美しいアセットを含むフォルダー、.dllファイルなど、おそらく触れてはならないその他のファイルがあります。ゲームを実行するには、ロット全体を目的のコンピューターにコピーし、.exeファイルをダブルクリックして、男の撮影を開始します。わーい!

しかし、それとインストーラーを使用することの違いは何ですか?ファイルをコピーし、.zipファイルよりもプロフェッショナルに見える以外に、インストーラーは他に何をしますか?別のコンピューターでゲームを実行しようとすると、一般に多くのパッチ適用/構成が必要ですか?私は貪欲な指をつかむことができるすべてのWindowsコンピューターでゲームをテストしましたが、それはうまく機能します。


1
たとえばXNAでは、XNAランタイムが必要です。または、SlimDXを使用する場合は、ゲームディレクトリ内またはGAC内にSlimDX.dllが必要です。
鬼丸

うーん、私はそれを理解しています。しかし、私が必要とする.dllファイル(私の場合はsdl.dllとそのミニオン)は既に.exeファイルと同じディレクトリにあり、残りをコピーするとコピーされます。インストーラーの違いは何ですか?
HumanCatfood

2
@Janエンドユーザーは、ファイルの配置について心配する必要はありません。それは彼らのために成し遂げられることです。
シダー

1
考えるべきこと-あなたのゲームはどのくらい「大きい」ですか?すなわち、それは小さなインディースタイルのexeファイル、1つまたは2つのDLLといくつかのイメージ、またはあらゆる種類のランタイムのインストールを必要とする大規模なものです。比較的小さなものであれば、zip内のexeファイルで十分であり、5分間のプレイ後に削除したいランダムゲームをインストールするユーザーの不本意を乗り越えるのに役立ちます。
ピク

1
インストーラーについて話す...よく見落とされるのは、良いアンインストーラーです。残ったファイルやレジストリキーを削除する頻度を失いました。それがゲームの再インストール時に問題を引き起こすと言われたとき、それは特に腹立たしいです。
Exilyth

回答:


34

通常、インストーラーは、エンドユーザーの作業を容易にするためにあります。以下のいくつかの組み合わせを行います。

  • 解凍
  • ディレクトリの作成
  • 必要なランタイムのインストール(再配布可能:.Net、Visual C ++、Direct xなど)
  • OSへの登録(後でクリーンアンインストールするため)
  • 美しく、美しいスクリーンショットを表示して、ゲームの動作中にプレーヤーを準備します。
  • ユーザーにゲームを登録する機会を提供する
  • ゲームのアセットまたはパッチの更新をダウンロードする
  • スタートメニューまたはデスクトップにアイコンを追加する
  • さまざまなゲームディレクトリ(一時フォルダ、保存ディレクトリなど)に適切なアクセス許可を設定します。
  • 既にインストールして、ユーザーが次のボタンをクリックしてゲームをプレイできるようにします!

そうそう、ランタイムをインストールする必要があるとは考えていませんでした。ありがとうございました!
HumanCatfood

2
また、ファイルアクセス権の設定を忘れないでください!インストーラーが設定しない限り、ゲームはそのフォルダーへの書き込みアクセスを保証されません(savegamesなど)。
ネヴァーマインド

10
+1ほとんどのエンドユーザーは、ファイルを解凍することにさえ不安があるため、インストーラーは、適切なデフォルトのインストールパスを提案し、それらを「そのまま実行」する必要があります。多くのエンドユーザーは、ファイルシステムが何であるか、または提示されたデフォルトのドキュメントパス以外のファイルを見つける方法を知りません。そして率直に言って、なぜ彼らは知っておく必要があるのでしょうか?インストーラーは貧乏人のアプリストアだと考えてください。1回クリックするだけで再生できます。
オスカーデューブボーン

まあ、それは本当に対象読者に依存します。
APIビースト

3
また、理由のリストに一貫性を追加します。インストーラーを提供することにより、ユーザーが他のユーザーと一貫したセットアップを取得できるようにします。そうしないと、誰かがゲームをデスクトップに解凍してそこから実行するなどの狂気の結果になります(はい、私はこれを見ました)。一貫して正常なセットアップを使用すると、削除され、多くの事のできる間違って行くが、物事がトラブルシューティング時の作業を容易に行う行く間違って。
マキシマスミニマス

3

インストーラーは、便利で自給自足のユーザーインターフェイスを通じて、通常はアーカイブ内に含まれるソフトウェアインフラストラクチャの複雑な部分を展開するプロセスを抽象化します

このUIは、グラフィカルなものでも、unixシェル(bashなど)などのコマンドラインで出力されるテキストに基づくものでもかまいません。グラフィカルインストーラの場合、ほとんどの場合、いわゆるインストールブートストラップが使用されます。後者の場合、インストールスクリプトは、bashスクリプト、Microsoftバッチスクリプト、またはコマンドラインで実行されるその他のスクリプト言語です。

最も単純なケースのアプリケーションは単純で、実行可能ファイルを実行するためにファイルをどうするかを知っているオペレーティングシステムと。アプリケーションファイルは、1つのアーカイブパックされたサブフォルダーおよびその他の補助ファイルを含むフォルダーに常駐できます。この場合、インストーラーは必要ありません。

複雑なソフトウェアの場合、たとえばソフトウェア製品の著作権を行使するために、ソフトウェアプラットフォーム全体と、基盤となるオペレーティングシステムインフラストラクチャとの緊密な統合が望ましい場合があります。

Windowsの多くのインストーラーは/eor /extractフラグを提供します。たとえばsetup.exe /e、インストーラがインストールスクリプトを実行せずにアーカイブの内容を抽出できるようにします。私は最近それをする必要がありまし

移植性に向けて

基礎となるソフトウェア資産がどれほど単純であっても、インストーラーはほとんどプロのソフトウェアを提供するための標準になりました。コンピュータに精通したユーザーの数が増え、アプリケーションをあるデスクトップから次のデスクトップに移行したいという要望があるため、シンプルなアーカイブで提供されることが多いポータブルソフトウェアの人気が高まっています。

インストーラーにどれだけの時間を費やしたかはわかりませんが、間違いなく数日です。

インストーラーが処理できるタスクは次のとおりです。

  • 解凍(多くの場合、エキゾチックな高圧縮アーカイバを使用)
  • システムのハードウェア要件を確認する
  • 十分なハードディスク容量を確保する
  • ソフトウェアプラットフォームのランタイム要件(「再配布可能ファイル」など)を確保する
  • 新しいソフトウェアアップデートの確認
  • リモートリポジトリからソフトウェアをダウンロードする
  • プログラムファイルおよびフォルダの作成および/または更新
  • 構成ファイル、レジストリエントリ、または環境変数を作成する
  • ソフトウェアドライバーのインストール、デバイスのマウントまたはマウント解除
  • インストール手順の説明、リンク、ショートカットの作成により、日常のユーザーのアクセシビリティを向上させる
  • ブックマークなどを使用して独自のソフトウェアを宣伝する...
  • インストール中にソフトウェアのキーポイントをスライドごとに提示することにより、ユーザーが実際にソフトウェアを起動するインセンティブを作成する
  • ソフトウェアのバンドルを通じて追加の収益を創出
  • カーネルモジュールを構成し、自動的に実行されるコンポーネント(デーモン、Windowsサービスなど)
  • ソフトウェアの自動パッチ
  • フォルダー、ファイル、およびユーザーのアクセス許可の設定
  • GUIDを作成してソフトウェアを特定のインストールインスタンスに結合し、たとえば移植性を妨げます

...他のポイントについて考えられる場合は、お知らせください。それらを組み込みます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.