Apa perbedaan khusus antara file .msi dan setup.exe?

193

Saya banyak mencari, tetapi semua jawaban dugaan. Bantu saya untuk menemukan jawaban yang tepat.

Babu
sumber
6
Ini jawaban yang lebih baru
Stein Åsmul
Saya ingin menginstal program yang datang dengan installer EXE dan MSI. Saya pertama kali menginstal dari MSI, yang hanya menginstal file program (bukan prasyarat atau dependensi, dan tidak membuat ikon Start Menu). Ketika saya meluncurkan program secara manual, gagal mengatakan DLL tertentu tidak ada. Menginstal dari EXE juga menginstal hal-hal lain, dan produk berjalan dengan baik. Saya akan mengatakan, jika pembuat perangkat lunak menyediakan opsi EXE dan MSI untuk menginstal, gunakan EXE.
James L.

Jawaban:

232

MSI adalah database Penginstal Windows. Pemasang Windows (layanan yang diinstal dengan Windows) menggunakan ini untuk menginstal perangkat lunak pada sistem Anda (mis. Menyalin file, menetapkan nilai registri, dll ...).

Setup.exe dapat berupa bootstrapper atau penginstal non-msi. Pemasang non-msi akan mengekstraksi sumber instalasi dari dirinya sendiri dan mengelola instalasi mereka secara langsung. Bootstrapper akan berisi MSI, bukan file individual. Dalam hal ini, setup.exe akan memanggil Pemasang Windows untuk menginstal MSI.

Beberapa alasan Anda mungkin ingin menggunakan setup.exe :

  • Pemasang Windows hanya memungkinkan satu MSI untuk menginstal sekaligus. Ini berarti bahwa sulit untuk menginstal MSI MSI lain (misalnya dependensi seperti .NET framework atau C ++ runtime). Karena setup.exe bukan MSI, itu dapat digunakan untuk menginstal beberapa MSI secara berurutan.
  • Anda mungkin ingin kontrol yang lebih tepat tentang bagaimana instalasi dikelola. MSI memiliki aturan yang sangat spesifik tentang cara mengelola instalasi, termasuk menginstal, memutakhirkan, dan menghapus instalan. Setup.exe memberikan kontrol penuh atas proses konfigurasi perangkat lunak. Ini hanya boleh dilakukan jika Anda benar - benar membutuhkan kontrol ekstra karena ini banyak pekerjaan, dan mungkin sulit untuk memperbaikinya.
Kevin Kibler
sumber
7
Saya akan mengetik ini - ini mungkin yang dia cari
Mongoose
1
Dalam pengalaman saya membangun installer MSI banyak pekerjaan dibandingkan dengan membangun installer berbasis exe. Ini sangat tergantung pada alat yang Anda gunakan untuk membangun installer di tempat pertama. Sayangnya semua alat pemasang berbasis MSI yang pernah saya lihat adalah alat GUI komersial atau alat kompleks berbasis WiX. Tidak ada yang sesuai dengan kebutuhan saya dengan sangat baik (yaitu secara otomatis membangun installer dengan skrip).
craftworkgames
Jadi saya masih bertanya-tanya mengapa MSI ada. Apa masalah yang coba dipecahkan ketika exe tampaknya bekerja dengan baik?
The Muffin Man
14

.msi file adalah file installer windows tanpa runtime installer windows, setup.exe dapat berupa program yang dapat dieksekusi (mungkin yang menginstal barang di komputer Anda)

thbusch
sumber
9

MSI adalah file penginstal yang menginstal program Anda pada sistem yang menjalankan.

Setup.exe adalah aplikasi (file yang dapat dieksekusi) yang memiliki file msi sebagai sumber dayanya. Menjalankan Setup.exe pada gilirannya akan menjalankan msi (installer) yang menulis aplikasi Anda ke sistem.

Sunting (seperti yang disarankan dalam komentar): Menyiapkan file yang dapat dieksekusi tidak harus memiliki sumber daya MSI secara internal

Bapak baptis
sumber
Menyiapkan file yang dapat dieksekusi tidak harus memiliki sumber daya MSI secara internal.
jkmartindale
-9

MSI pada dasarnya adalah pemasang dari Microsoft yang dibangun ke dalam windows. Ini mengaitkan komponen dengan fitur dan berisi informasi kontrol pemasangan. Tidak perlu bahwa file ini berisi file yang diperlukan pengguna aktual yaitu program aplikasi yang diharapkan pengguna. MSI dapat berisi setup.exe lain di dalamnya yang dibungkus MSI, yang sebenarnya berisi file yang diperlukan pengguna.

Semoga ini membuat Anda ragu.

JPro
sumber
13
Ini membingungkan dan umumnya tidak benar - dalam MSIfile itu biasanya JANGAN membungkus setup.exefile, tetapi sebaliknya.
Flak DiNenno
"MSI dapat berisi setup.exe lain di dalamnya yang dibungkus MSI" salah! Sebaliknya, kebalikannya benar: .exe memiliki .msi di dalamnya.
SATU