2016-12-21 12 views
3

免責事項:最も基本的なWiXチュートリアルを超えたことはありません。コンセプトを理解しようとするたびに頭が回転し始めます。MSIベースのインストールの特定の利点は、MSIラップされたスクリプトベースのインストールを介してですか?


私はIs it feasible/sensible to wrap an InnoSetup installer inside an MSI for easier distribution via AD?を読んでいる:

  • InnoSetupのようなスクリプト/ exeファイルベースのインストーラを、ラップ、およびインストールを提供できるツール(exemsi MSIラッパーを探して)今日はありますが、アップグレードアンインストールします。
  • 私の経験から、これはユーザーが期待していることです。製品をインストールすることができます。新しいセットアップでアップグレードできます。アンインストールすると製品が削除されます。
  • Yetquiteafew「本当の」MSIだけが「すべて」(?)必須の(?)機能を確実に提供できるとの回答です。

    • は単純に実行することにより、おそらく(製品を修理できるよう
    • できるだけ少ない手間で製品をインストールします。何は、私はいつもインストーラが行うことになっていたと思ったがあることを考えるとそう

  • 新しいセットアップによる製品のアップグレードを許可する
  • 最終的に製品をアンインストールして、できるだけトレースを残してください。

質問は、適切なツールを考えると、ポイントは上記の「本当の」MSIパッケージプランを行うどのような追加の利点は、単にMSIでexeファイルをラップすることによって可能であることが証明されていることを与えられたです?

明確にする:MSIパッケージはエンタープライズ/ AD/GPOの配布には追加のメリットを提供しますが、これは裸の.exeインストーラを持っていないと持っていません。私が興味を持っているのは実際にを使用しています - 機能は "実際の" MSIパッケージでのみ可能ですか?

+0

ネイティブMSIパッケージ(ほぼ)は、サイレントインストールなどの機能を常にサポートしており、インストールが失敗した場合はエラーコードを正しく返します。 MSIラッパーは私の経験では必ずしも信頼できるものではありません。 –

+0

@HarryJohnston - そのメモに感謝します。ええ、ラッパーは正しくエラーコードを転送する必要があり、サイレントインストールも考慮する必要がありますが、どちらも「ジャスト」ラッピングで可能です。 –

+0

もちろん、元の実行可能ファイルがエラーコードを正しく生成し、サイレントインストールをサポートすることはもちろんです。私はちょうどラップされたパッケージで明示的にサポートする必要があることを意味しました。ネイティブMSIを構築すると無料で入手できます。 –

答えて

3

MSIは、オンデマンドで追加機能をインストールすることをサポートしています。 MSIによって作成されたショートカット(.lnk)には、Windowsによって認識された特別なmetadataが含まれており、欠落している機能を自動的に修復および/またはインストールできます。

もう1つの利点は、パッケージが署名されている場合、管理者以外の者がパッチwithout UAC elevationをインストールできることです。 MSIの

いくつかの欠点があります:

  • 32ビットおよび64ビットのターゲットのための単一の.msiを作成することはできません。
  • このサポートにはchanged over timeがあり、新しいMSIプロパティが追加されているため、単一のユーザー/非昇格インストーラが問題になる可能性があります。
  • サポートされているWindowsの最小バージョンに応じて、テスト/対処するいくつかのメジャーバージョンのMSIがあります。
  • システムドライブをフルに格納することによって、システムを拡張します。最近のバージョンのWindowsでは、%windir%\ Installerのmsi。
  • インストールするすべての単一ファイルについてのパスとその他の情報を格納することによってレジストリを拡張します。
+0

ありがとう。今まで必要だった2つの機能ではありませんが、知っておきたいことです。私はそれが好きでどのように私は利点を尋ねたのか、あなたは3つのリストを挙げていました - そして、5つの短所を挙げました:-D –

+1

MSIはもちろん変換とマージモジュールのような他のユニークな機能を持っていますが、私は彼らに利点を呼ぶかどうか分からない。 – Anders

3
  1. インストールまたは削除操作は、(製品の)機能によって行われます。これは、ユーザの質問が少なくて済み、インストーラが小規模になる傾向にあるため、これまでと同様に関連性がありません。 Visual StudioやSQL Serverなどの大規模なインストーラーの場合は、ブートストラップを介して質問します。これは、あなたが検討していることの反対です。
  2. インストール、修復、および削除は、コンポーネント別(すべての製品とバージョン)です。参照カウントはWindowsインストーラの制御下にあり、Windowsインストーラ前のテクニックよりも壊れにくくなっています。共有コンポーネントは、.NETや登録不要のCOMなどの異なるアプリケーション技術のため、あまり一般的ではありません。大規模なシステムはコンポーネントを共有するかもしれませんが、複数の製品でコンポーネントが不要になるように、別々のインストーラに分割することもできます。

これらの利点は、インストールアーキテクチャのニーズによって異なります。

0

MSIは、インストールすることなく利用可能なアプリケーションの広告をサポートしています(詳細はthis MSDN post)。企業環境では、最も重要なアプリケーションだけを配備できるため、1)ユーザーのマシン上の物理的なスペースを節約できるので便利です。 2)ユーザーごとのライセンス(実際にそのアプリを必要とするユーザーのみが実際にライセンスをインストールしてライセンスを有効にする)でアプリの費用を削減する。

+0

ありがとうございます。ラットフィーチャーセットに入ったことはありません。また、あなたの短いことを読むことから、それはラッパーによって行うことができるようです。一見すると、私は "ネイティブ" MSIコンポーネントを必要としているように見えません。 –

関連する問題