Jakie są specyficzne różnice między plikami .msi i setup.exe?

193

Dużo szukałem, ale wszystkie odgadły odpowiedzi. Pomóż mi znaleźć dokładną odpowiedź.

Babu
źródło
6
Oto nowsza odpowiedź
Stein Åsmul,
Chciałem zainstalować program dostarczany zarówno z instalatorem EXE, jak i MSI. Najpierw zainstalowałem z MSI, który zainstalował tylko pliki programu (nie ma żadnych wymagań wstępnych ani zależności i nie utworzyłem ikon Menu Start). Kiedy ręcznie uruchomiłem program, nie powiedziano, że brakuje niektórych bibliotek DLL. Instalowanie z EXE instalowało również inne rzeczy, a produkt działał dobrze. Powiedziałbym, że jeśli producent oprogramowania zapewnia zarówno opcję EXE, jak i MSI do instalacji, użyj EXE.
James L.

Odpowiedzi:

232

MSI to baza danych Instalatora Windows. Instalator Windows (usługa zainstalowana w systemie Windows) używa go do instalowania oprogramowania w systemie (tj. Kopiowania plików, ustawiania wartości rejestru itp.).

Plik setup.exe może być programem ładującym lub instalatorem innym niż MSI. Instalator inny niż MSI wyodrębni zasoby instalacyjne z siebie i bezpośrednio zarządza ich instalacją. Program ładujący będzie zawierał plik MSI zamiast pojedynczych plików. W takim przypadku plik setup.exe wywoła Instalatora Windows w celu zainstalowania MSI.

Niektóre powody, dla których warto użyć pliku setup.exe :

  • Instalator Windows pozwala na instalację tylko jednego MSI na raz. Oznacza to, że trudno jest MSI zainstalować inne MSI (np. Zależności, takie jak .NET Framework lub środowisko wykonawcze C ++). Ponieważ plik setup.exe nie jest plikiem MSI, można go użyć do zainstalowania kilku plików MSI w sekwencji.
  • Możesz potrzebować bardziej precyzyjnej kontroli nad sposobem zarządzania instalacją. MSI ma bardzo szczegółowe zasady dotyczące zarządzania instalacjami, w tym instalowania, uaktualniania i odinstalowywania. Setup.exe daje pełną kontrolę nad procesem konfiguracji oprogramowania. Należy to zrobić tylko wtedy, gdy naprawdę potrzebujesz dodatkowej kontroli, ponieważ jest to dużo pracy, a prawidłowe jej ustawienie może być trudne.
Kevin Kibler
źródło
7
Chciałem to wpisać - prawdopodobnie tego właśnie szuka
Mongoose,
1
Z mojego doświadczenia wynika, że budowanie instalatora MSI to dużo pracy w porównaniu do budowania instalatora opartego na exe. Zależy to przede wszystkim od narzędzi używanych do zbudowania instalatora. Niestety wszystkie narzędzia instalatora oparte na MSI, które widziałem, były albo komercyjnymi narzędziami GUI, albo złożonymi narzędziami opartymi na WiX. Żadne z nich nie odpowiada szczególnie moim potrzebom (tj. Automatyczne budowanie instalatorów za pomocą skryptu).
craftworkgames
Nadal zastanawiam się, dlaczego istnieje MSI. Jaki problem próbował rozwiązać, gdy exe wydaje się działać dobrze?
The Muffin Man
14

Pliki .msi to pliki instalatora systemu Windows bez środowiska wykonawczego instalatora systemu Windows, plik setup.exe może być dowolnym programem wykonywalnym (prawdopodobnie takim, który instaluje pliki na komputerze)

thbusch
źródło
9

MSI to plik instalatora, który instaluje program w systemie wykonawczym.

Setup.exe to aplikacja (plik wykonywalny), w której jednym z zasobów są pliki MSI. Wykonanie Setup.exe z kolei uruchomi msi (instalator), który zapisuje twoją aplikację w systemie.

Edycja (zgodnie z sugestią w komentarzu): pliki wykonywalne Instalatora niekoniecznie mają wewnętrzny zasób MSI

Ojciec chrzestny
źródło
Pliki wykonywalne instalacji niekoniecznie mają wewnętrzny zasób MSI.
jkmartindale
-9

MSI jest w zasadzie instalatorem firmy Microsoft wbudowanym w system Windows. Kojarzy komponenty z funkcjami i zawiera informacje sterujące instalacją. Nie jest konieczne, aby ten plik zawierał rzeczywiste pliki wymagane przez użytkownika, tj. Aplikacje, których użytkownik oczekuje. Plik MSI może zawierać inny plik setup.exe, który jest zawijany przez plik MSI, który zawiera pliki wymagane przez użytkownika.

Mam nadzieję, że rozwiąże to twoje wątpliwości.

JPro
źródło
13
To jest mylące i ogólnie niepoprawne - W tym MSIpliki zwykle NIE owinąć setup.exeplików, lecz raczej odwrotnie.
Flak DiNenno
„Plik MSI może zawierać inny plik setup.exe, który jest zawijany przez plik MSI”, jest nieprawidłowy! Przeciwnie, jest odwrotnie: plik .exe ma w sobie plik .msi.
JEDEN