MSI vs NuGet packages: które są lepsze dla ciągłej dostawy?

Omówmy następujący temat. Istnieje aplikacja, która jest obecnie wdrażana z dobrze znaną metodą xcopy.Takie podejście utrudnia zarządzanie zależnościami, aktualizacjami plików itp. Jest pomysł, aby rozpocząć wdrażanie aplikacji z pomocą niektórych pakietów, wiesz jak to zrobić w Linuksie z Pomocą RPM, ale Dla Windows.

Więc mam pytanie: jaki system pakietów jest lepszy do wykorzystania na Windows classic Windows installer (msi) lub nuget albo coś innego?

Author: Stein Åsmul, 2014-07-29

2 answers

MSI {[5] } jest akceptowanym standardem aplikacji korporacyjnych. Ma niektóre główne korzyści korporacyjne w porównaniu ze starszymi wdrożeniami techniki. WiX jest nowy sposób open source do tworzenia plików MSI.

Kilka dobrych linków startowych do nauki Wix:

Wyodrębnij pliki z Setup.exe WiX Bundle lub z samego pliku MSI:

Jak pisałem w moim sugerowanym" Wix quick start " postu powyżej: Wix jest hands-on . po prostu skup się na prostych, ale kompletnych rzeczywistych próbkach, takich jak ta z Codeproject - samo czytanie dokumentacji może być jedynie mylące .

Skup się na podziale aplikacji na komponenty i skonfiguruj dużą aktualizację. Użyj jednego pliku na komponent zgodnie z regułą i przeczytaj tę odpowiedź, aby lepiej zrozumieć tworzenie komponentów: zmienić mój identyfikator GUID komponentu w wix?

Głównym upgrade jest najczęściej używanym mechanizmem upgrade 'U Dla wdrożonego oprogramowania (innym powszechnym typem upgrade' u jest minor upgrade). Jest to oczywiście istotne, że można uaktualnić to, co już się rozlokowałeś. Uruchamiaj scenariusze aktualizacji przed wdrożeniem pierwszej wersji oprogramowania, aby mieć pewność co do rozwiązania wdrożeniowego.

Po skonfigurowaniu komponentów i uruchomieniu rozwiązania uaktualniającego, reszta elementów układa się na swoim miejscu, podczas pracy nad wymaganiami wdrożenia aplikacji i sprawdzania próbek w witrynie samouczka Wix: https://www.firegiant.com/wix/tutorial/.

Dla piszących Wix kod bezpośrednio (bez edytora GUI), proponuję sprawdzić tę odpowiedź pod kątem sposobu na zachowanie plików źródłowych: składnia GUID w WIX?

Czytaj dalej:

 23
Author: Stein Åsmul,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-10 22:47:02

Idę teraz tą ścieżką, gdzie odziedziczyłem oprogramowanie za pomocą MSI / WiX dla instalatora, ale patrząc na konwersję naszego procesu do ciągłego dostarczania i wypychania aktualizacji, które są instalowane bez interakcji z klientem. Myślę, że jest to niepoprawne do pigeon hole NuGet jako narzędzie SDK, w swojej istocie jest to narzędzie do wdrażania wersjonowanych zestawów plików. Co więcej, jeśli oprogramowanie, które wdrażasz, odpowiada już na nuget i już pakujesz swoje zespoły do nuget pakiety do użytku wewnętrznego, to po co dodawać dodatkową technologię do mieszanki ze względu na to? spakuj nugeta.exe w Twoim msi, wywołaj aktualizacje na nim okresowo, gotowe.

Wiem, że WiX wspiera tworzenie łatek, ale wygląda na to, że to przemyślenie. Co się stanie, jeśli instalacja łaty nie powiedzie się? Instalowanie łatek Nie w porządku? Twój główny instalator wymaga uprawnień UAC, a twoja łata nie?

Myślę, że czasy się zmieniają, A MSI reprezentuje starszy sposób myślę o różnych rzeczach. Chocolatey jest dobrym przykładem, ale wciąż jest na tym etapie hybrydowym, mieszając obie technologie.

MSI jest bardziej jak pull - u get a package, then install it. Nuget jest bardziej jak push stratergy-u uzyskać nazwę pakietu, zainstalować go, a następnie okresowo można wywołać update, a nowa wersja jest pobierana i instalowana.

 3
Author: Weq,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-13 02:43:07