.Msi ve setup.exe dosyası arasındaki belirli farklar nelerdir?


193

Çok araştırdım, ama hepsi tahmin edilen cevaplar. Kesin cevabı bulmama yardım et.




Hem EXE hem de MSI yükleyicisiyle gelen bir programı yüklemek istedim. İlk olarak yalnızca program dosyalarını yükleyen MSI'dan yükledim (herhangi bir önkoşul veya bağımlılık değil, Başlat Menüsü simgeleri oluşturmadım). Programı el ile başlattığımda, bazı DLL'lerin eksik olduğunu söyleyemedi. EXE'den yükleme başka şeyler de yükledi ve ürün iyi çalıştı. Bir yazılım üreticisi kurulum için hem EXE hem de MSI seçeneği sunuyorsa EXE'i kullanın.
James

Yanıtlar:


232

MSI, bir Windows Installer veritabanıdır. Windows Installer (Windows ile yüklenen bir hizmet) bunu sisteminize yazılım yüklemek için kullanır (örneğin, dosyaları kopyalamak, kayıt defteri değerlerini ayarlamak vb.).

Bir setup.exe önyükleyici veya msi olmayan bir yükleyici olabilir. MSI olmayan bir yükleyici, kurulum kaynaklarını kendisinden alır ve kurulumlarını doğrudan yönetir. Bir önyükleyici tek tek dosyalar yerine bir MSI içerecektir. Bu durumda, setup.exe, MSI'yı yüklemek için Windows Installer'ı çağırır.

Setup.exe'yi kullanmak isteyebileceğiniz bazı nedenler :

  • Windows Installer aynı anda yalnızca bir MSI'nın yüklenmesine izin verir. Bu, bir MSI'nın diğer MSI'ları yüklemesinin zor olduğu anlamına gelir (örn. .NET çerçevesi veya C ++ çalışma zamanı gibi bağımlılıklar). Setup.exe bir MSI olmadığından, birkaç MSI'yı sırayla yüklemek için kullanılabilir.
  • Yüklemenin nasıl yönetildiği üzerinde daha hassas kontrol isteyebilirsiniz. MSI, yükleme, yükseltme ve kaldırma da dahil olmak üzere kurulumları nasıl yönettiğine dair çok özel kurallara sahiptir. Bir setup.exe, yazılım yapılandırma işlemi üzerinde tam denetim sağlar. Bu, yalnızca fazladan kontrole gerçekten ihtiyacınız varsa yapılmalıdır , çünkü çok fazla iştir ve doğru yapmak zor olabilir.

7
Bunu
yazacaktım

1
Deneyimlerime göre, bir MSI yükleyicisi oluşturmak, exe tabanlı bir yükleyici oluşturmaya kıyasla çok iş . Bu büyük ölçüde yükleyiciyi ilk etapta oluşturmak için kullandığınız araçlara bağlıdır. Ne yazık ki gördüğüm tüm MSI tabanlı yükleyici araçları ticari GUI araçları veya karmaşık WiX tabanlı araçlar. Her ikisi de benim ihtiyaçlarıma özellikle iyi uyuyor (yani otomatik olarak bir script ile montajcılar oluşturmak).
craftworkgames

Bu yüzden hala MSI'nın neden var olduğunu merak ediyorum. Exe iyi çalışıyor gibi görünmek için hangi sorunu çözmeye çalışıyordu?
Muffin Man

14

.msi dosyaları, windows installer çalışma zamanı olmadan windows installer dosyalarıdır, setup.exe herhangi bir yürütülebilir program olabilir (muhtemelen bilgisayarınıza bir şeyler yükler)


9

MSI , programınızı yürütme sistemine yükleyen bir yükleyici dosyasıdır.

Setup.exe , kaynaklarından biri olarak msi dosya (lar) ı bulunan bir uygulamadır (yürütülebilir dosya). Setup.exe yürütüldüğünde, uygulamanızı sisteme yazan msi (yükleyici) yürütülür.

Düzenleme (yorumda önerildiği gibi): Yürütülebilir dosyaların kurulumunun dahili olarak bir MSI kaynağı olması gerekmez


Kur çalıştırılabilir dosyalarının dahili olarak bir MSI kaynağı olması gerekmez.
jkmartindale

-10

MSI temelde Microsoft'un pencerelere yerleşik bir yükleyicisidir. Bileşenleri özelliklerle ilişkilendirir ve kurulum kontrol bilgilerini içerir. Bu dosyanın, kullanıcının beklediği uygulama programları gibi gerçek kullanıcı gerekli dosyaları içermesine gerek yoktur. MSI, içinde kullanıcının gerekli dosyaları içerdiği MSI'nin içine sardığı başka bir setup.exe içerebilir.

Umarım bu şüpheni temizler.


13
Bu kafa karıştırıcı ve genellikle yanlış olduğunu - ki MSIdosyaları genellikle YAPMAYIN sarmak setup.exeyerine tam tersi dosyaları ama.
Flak DiNenno

"MSI içinde MSI sarar başka bir setup.exe içerebilir" yanlış! Aksine, tersi doğrudur: bir .exe içinde .msi vardır.
BİR
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.