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ź.




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.

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)


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


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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.