.msiファイルとsetup.exeファイルの具体的な違いは何ですか?


193

私はたくさん検索しましたが、すべてが推測された答えです。正確な答えを見つけるのを手伝ってください。




EXEとMSIの両方のインストーラーに付属しているプログラムをインストールしたいと思いました。私は最初にMSIからインストールしましたが、これはプログラムファイルのみをインストールし(前提条件や依存関係はインストールせず、スタートメニューアイコンを作成しませんでした)。プログラムを手動で起動したときに、特定のDLLが見つからないと言って失敗しました。EXEからインストールすると、他のものもインストールされ、製品は正常に動作しました。ソフトウェアメーカーがEXEとMSIの両方のオプションをインストールに提供している場合は、EXEを使用します。
James L.

回答:


232

MSIはWindowsインストーラーデータベースです。Windowsインストーラー(Windowsと共にインストールされるサービス)は、これを使用してシステムにソフトウェアをインストールします(つまり、ファイルのコピー、レジストリ値の設定など)。

setup.exeは、ブートストラップまたは非msiインストーラーのいずれかです。非msiインストーラーは、それ自体からインストールリソースを抽出し、それらのインストールを直接管理します。ブートストラップには、個々のファイルの代わりにMSIが含まれます。この場合、setup.exeはWindowsインストーラーを呼び出してMSIをインストールします。

setup.exeを使用するいくつかの理由:

  • Windowsインストーラでは、一度に1つのMSIのみをインストールできます。これは、MSIに他のMSI(たとえば、.NETフレームワークやC ++ランタイムなどの依存関係)をインストールさせることが難しいことを意味します。setup.exeはMSIではないため、複数のMSIを順番にインストールするために使用できます。
  • インストールの管理方法をより正確に制御したい場合があります。MSIには、インストール、アップグレード、アンインストールなど、インストールの管理方法に関する非常に具体的なルールがあります。setup.exeは、ソフトウェア構成プロセスを完全に制御します。これは多くの作業であるため、追加のコントロールが本当に必要な場合にのみ行う必要があり、正しく行うのは難しい場合があります。

7
これは、彼が探しているものは、おそらくです-私はこれを入力するつもりだった
マングース

1
私の経験では、MSIインストーラーのビルドは、exeベースのインストーラーのビルドと比較して多くの作業です。これは、最初にインストーラーをビルドするために使用するツールに大きく依存します。残念ながら、私が見たすべてのMSIベースのインストーラーツールは、商用のGUIツールまたは複雑なWiXベースのツールでした。どちらも私のニーズに特に適していません(つまり、スクリプトを使用してインストーラーを自動的に構築します)。
craftworkgames

だから私はまだMSIが存在するのか疑問に思っています。exeが正常に動作しているように見えるときに、それはどのような問題を解決しようとしていましたか?
マフィンマン

14

.msiファイルは、Windowsインストーラーランタイムを含まないWindowsインストーラーファイルです。setup.exeは任意の実行可能プログラム(おそらく、コンピューターに何かをインストールするプログラム)にすることができます。


9

MSIは、実行中のシステムにプログラムをインストールするインストーラファイルです。

Setup.exeは、リソースの1つとしてmsiファイルを持つアプリケーション(実行可能ファイル)です。Setup.exeを実行すると、アプリケーションをシステムに書き込むmsi(インストーラー)が実行されます。

編集(コメントで提案されているとおり):セットアップ実行可能ファイルには、必ずしもMSIリソースが内部にあるとは限りません


セットアップ実行可能ファイルは、必ずしもMSIリソースを内部に持つ必要はありません。
jkmartindale

-9

MSIは基本的に、Windowsに組み込まれたMicrosoftのインストーラーです。コンポーネントと機能を関連付け、インストール制御情報を含みます。このファイルに実際のユーザーが必要とするファイル、つまりユーザーが期待するアプリケーションプログラムが含まれている必要はありません。MSIには、MSIがラップする別のsetup.exeを含めることができます。これには、実際にユーザーが必要とするファイルが含まれています。

これで疑問が解消されることを願っています。


13
これは紛らわしく、一般的に正しくありません -そのMSIファイルは通常ファイルをラップしませんsetup.exeが、その逆です。
Flak DiNenno、2014年

「MSIはその中にMSIがラップする別のsetup.exeを含めることができます」は正しくありません。むしろ、その逆が真です。.exeの中に.msiがあります。
ONE
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.