Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 3956|Odpowiedź: 6

NSIS (1) Stwórz prosty instalator

[Skopiuj link]
Opublikowano 28.01.2024 09:42:28 | | | |
Wymagania: Opracowałem aplikację z użyciem Winform i chciałem stworzyć instalator do instalacji i uruchomienia tej aplikacji, co pokazuje, że produkt jest bardziej formalny.

Wprowadzenie do NSIS

NSIS (Nullsoft Scriptable Install System) to profesjonalny system open-source do tworzenia instalatorów Windows. Został zaprojektowany tak, aby był jak najmniejszy i najbardziej elastyczny, co czyni go idealnym do dystrybucji internetowej.

Jako pierwsze doświadczenie użytkownika z produktem, stabilny i niezawodny instalator jest ważnym elementem skutecznego oprogramowania. Dzięki NSIS możesz stworzyć taki instalator, który potrafi wykonać wszystkie operacje potrzebne do instalacji oprogramowania.

NSIS opiera się na skryptach, co pozwala tworzyć logikę do obsługi najbardziej skomplikowanych zadań instalacyjnych. Wiele wtyczek i skryptów jest już dostępnych: możesz tworzyć instalatory webowe, komunikować się z Windows i innymi komponentami oprogramowania, instalować lub aktualizować wspólne komponenty i wiele więcej.


Pobierz NSIS:

Logowanie do linku jest widoczne.
Logowanie do linku jest widoczne.

Wtyczki NSIS:Logowanie do linku jest widoczne.

HM NIS EDIT do pobrania:

Logowanie do linku jest widoczne.
Logowanie do linku jest widoczne.

HM NIS EDIT: Darmowy edytor NSIS/IDE: HM NIS Edit to najlepszy edytor/IDE dla systemu instalacji skryptów Nullsoft (NSIS). Jest bardzo przydatny dla ekspertów i początkujących, którzy używają NSIS do tworzenia instalatorów. Kreator skryptów pomoże Ci stworzyć standardowy instalator za pomocą kilku kliknięć, a projektant InstallOptions pomoże Ci tworzyć własne, niestandardowe strony z przyjaznym interfejsem typu przeciągnij i upuść.

Pobierz i zainstaluj

Pobierz oprogramowanie NSIS i HM NIS EDIT, najpierw zainstaluj NSIS, a następnie zainstaluj HM NIS EDIT, jak pokazano poniżej:



Stwórz pakiet instalacyjny

Stwórz nową aplikację Winform, użyj narzędzia IDE do stworzenia nowej aplikacji Winform w .NET framework 4.7.2 (pominięte), skompiluj ją i użyj NSIS do stworzenia pakietu instalacyjnego.

Otwórz narzędzie HM NIS EDIT i wybierz File-> Nowy Skrypt: Kreator, jak pokazano poniżej:



Dostosuj informacje o aplikacji do swojej rzeczywistej sytuacji, jak pokazano na poniższym rysunku:



Odznacz "angielski" i wybierz "Uproszczony chiński", jak pokazano na poniższym rysunku:



Ustaw ścieżkę pliku autoryzacyjnego zgodnie z poniższym rysunkiem:



Określ plik aplikacji, usuń istniejącą konfigurację, a następnie dodaj nasz katalog aplikacji, jak pokazano na poniższym rysunku:




Kliknij Następne, jak pokazano poniżej:



Prosimy o wypełnienie programu, parametrów i samoraportu zgodnie ze swoją sytuacją, zgodnie z poniższym rysunkiem:



Odinstaluj konfigurację programu zgodnie z poniższym rysunkiem:



Ostatnim krokiem jest zapisanie go jako skryptu test.nsi na następną kompilację, jak pokazano poniżej:



Skompiluj skrypt i wygeneruj pakiet instalacyjny zgodnie z poniższym rysunkiem:



Dołącz kod test.nsi:

(Koniec)





Poprzedni:Poznaj tematy w rozszerzeniu .Net Reactive Responsive
Następny:NSIS (ii) mutex gwarantuje, że działa tylko jeden instalator
 Ziemianin| Opublikowano 28.01.2024 10:09:14 |

funkcjaznaczenie
SekcjaNajprostsza funkcja reprezentuje dział, używany do reprezentowania komponentu, który wymaga instalacji. Treść sekcji to ostatnia część programu do wykonania poza demontażem, ale podczas kompilacji jest to pierwsza do sprawdzenia; jeśli w programie nie ma sekcji lub funkcji, kompilacja zostanie zakończona, a blok kodu w sekcji musi zostać wcięty do 2 przestrzeni
FunkcjaWykonywana funkcja również musi być wcięta, jej nazwa funkcji zostanie rozpoznana, jeśli zostanie rozpoznana jako nazwa specjalna, zostanie wykonana w określonych okolicznościach, które zostaną wyjaśnione poniżej
Sekcja KoniecWskazuje koniec działu, a nie wcięty wewnątrz sekcji
FunctionEndOznacza koniec funkcji, tak jak wyżej
SetCompressorUstaw algorytm kompresji, następujące parametry to: algorytm kompresji w kreatorze, solid użyj /SOLID jako prefiksu, np. algorytm solid lzma jest zapisywany jako /SOLID lzma
SetCompressorUstaw rozmiar skompresowanego volume, a potem liczbę, i zazwyczaj nie ma znaczenia, jeśli tego nie zapiszesz
OutFileZdecyduj o ścieżce skompilowanego pakietu instalacyjnego (ścieżce przyszłych pakietów instalacyjnych, a nie w którym folderze go umieścić)
NazwaUstaw nazwę produktu, zwykle nazwę aplikacji + wersję aplikacji zapisaną w pierwszym kroku kreatora
InstallDirReprezentuje domyślną ścieżkę instalacji, która jest wypełniana w pierwszej linii czwartego kroku kreatora, co określa wartość $INSTDIR
ShowInstDetailsParametry nie są proste "prawda" i "fałszywe", lecz "pokaż", co oznacza, że szczegóły są wyświetlane automatycznie, przycisk użytkownika wyświetla szczegóły, a szczegóły instalacji nie są widoczne
ShowUninstDetailsWskazuje, czy szczegóły odinstalowania są wyświetlane, a parametry są takie same jak powyżej
BrandingTextWyświetla informacje na dole pakietu instalacyjnego, czyli ostatnią linię niestandardowego tekstu w pierwszym kroku kreatora, który może akceptować dwa parametry: jeden to tekst do wyświetlania, a opcjonalny parametr to /TRIM, który może określać kierunek wyrównania tekstu (LEFT, RIGHT lub CENTER, domyślnie LEFT, /TRIMLEFT, /TRIMRIGHT lub /TRIMCENTER musi być zapisany, bez żadnych przerw)
SetOutPathMoże być zapisany tylko na pierwszej linii Sekcji, która określa lokalizację instalacji komponentu reprezentowanego przez Sekcję; w przeciwieństwie do InstallDir, SetOutPath pozwala na instalację różnych komponentów w różnych podkatalogach katalogu całkowitej instalacji, zaleca się ustawienie go na $INSTDIR\ folder z nazwą komponentu (lub jeśli komponenty są współzależne, można dostosować ścieżkę komponentu osobno)
SetOverWriteMożna go zapisać tylko w Section, który służy do określenia, czy nadpisać po zainstalowaniu, a parametry można ustawić tak: zawsze nadpisywać (włączony), nigdy nie nadpisywać (wyłączony), nadpisywać przy nowszych (jeśli nowszy), nadpisywać gdy zawartość pliku jest inna (ifdiff) oraz próbować nadpisać (try), co odpowiada piątemu krokowi kreatora > edycji elementów katalogu
PlikMożna go zapisać tylko w Section, co oznacza, że Section zawiera i pakuje pliki, a parametr /r escaping reprezentuje pliki i foldery zawierające podkatalogi, a odpowiednie kroki kreatora są takie same jak powyżej. Parametr /x służy do wykluczania plików, można zapisać /x "*.ico" "xxx\*", co oznacza wykluczenie plików ICO i wykluczenie wszystkich plików z podkatalogu xxx, odpowiadającego krokowi 5 kreatora
CreateDictionaryUtwórz folder, po którym znajduje się pełna lub względna ścieżka folderu
CreateShortcutStwórz skrót, pierwszy to ścieżka skrótu (przyrostek .lnk), a drugi to ścieżka skrótu do pliku, odpowiadająca dolnej części kroku 6 kreatora
WriteUninstallerUtwórz deinstalator i podaj nazwę ścieżki
WriteRegStrZapisz do rejestru, który zazwyczaj nie wymaga zmian, wystarczy podążać za kreatorem, aby wygenerować
UsunąćZazwyczaj w sekcji odinstalowania usuwasz pojedynczy plik, a następnie ścieżkę do usuniętego pliku, ponieważ jest to pojedynczy plik, nie możesz dodać /r
RMDirZazwyczaj w sekcji odinstalowania usuwasz katalog i wszystkie pliki z katalogu, a następnie podaj ścieżkę do usuniętego katalogu, pierwsza zazwyczaj wymaga ręcznego dodania /r, kreator nie dodał tego do ciebie, jeśli go nie dodasz, zostanie odinstalowany, najlepiej napisać to polecenie raz dla każdego podkatalogu, musisz dodać /r, a na końcu usunąć ogólny katalog RMDir "$INSTDIR".
DeleteRegKeyAby usunąć informacje z rejestru, zazwyczaj można użyć kreatora, aby je wygenerować
SetAutoCloseMożna go zapisać tylko w Sekcji, wskazując, czy automatycznie przejdzie do interfejsu dopełnienia po zakończeniu instalacji, z parametrami prawda i fałsz
AutoCloseWindowNie wydaje się, żeby miało to jakiś wpływ, funkcja wydaje się być taka sama jak poprzednia, ale można ją zapisać poza sekcją, a parametry są takie same jak powyżej
Skrzynka na wiadomościPole wiadomości można zapisać tylko w sekcji lub funkcji, jest wiele parametrów, w tym informacje wyświetlane, ostrzeżenie display, ask yes no, ask okcancelretry itd., wpisanie Messagebox w VNISEdit, aby uzyskać listę wszystkich parametrów, a następnie połączenie treści wyświetlanych w oknie komunikatu
Przerwaćblokowanie, czekanie na odpowiedź użytkownika
HideWindowUkryte okno, zwykle używane do odinstalowania Sekcji, najpierw usuwa się sam, potem usuwa inne pliki (tak, program nadal działa) i automatycznie zamyka okno po usunięciu


 Ziemianin| Opublikowano 28.01.2024 11:07:28 |
Funkcja odwołania

Funkcja odwołania podczas instalacji

.onGUIInit
.onInit
.onGUIEnd
.onRebootFailed
.onSelChange
.onUserAbort
.onVerifyInstDir

Funkcja odwołania po odinstalowaniu

un.onGUIInit
un.onInit
un.onUninstFailed
un.onUninstSuccess
un.onGUIEnd
un.onRebootFailed
un.onSelChange
un.onUserAbort


Szczegóły są następujące:

onGUIInit:
Callback zostanie wywołany przed załadowaniem pierwszej strony i wyświetleniem dialogu instalatora, co pozwoli dostosować interfejs użytkownika.

onInit:
To wezwanie zostanie wywołane, gdy instalator zbliża się do zakończenia inicjalizacji. Jeśli funkcja .onInit wywoła Abort, instalator natychmiast wychodzi z programu.

onInstFailed:
Funkcja odwołania jest wywoływana, gdy użytkownik kliknie przycisk "anuluj" po niepowodzeniu instalacji (jeśli instalator nie może udostępnić żadnych plików lub jeśli skrypt instalacyjny używa polecenia Przerwać).

onInstSuccess:
Callback jest wywoływany przed pomyślną instalacją i zamknięciem okna instalacji (jeśli AutoZamknijOkno lub SetAutoClose jest ustawione na false, może to nastąpić po kliknięciu "Zamknij").

onGUIEnd:
Callback jest wywoływany tuż po zamknięciu okna instalatora. Używam do udostępniania wtyczek związanych z interfejsem użytkownika, gdy jest to potrzebne.

onMouseOverSection:
Callback jest wywoływany za każdym razem, gdy mysz przesuwa się po polu wyboru sekcji drzewa. Pozwala to ustawić przykładowy opis dla każdego segmentu. ID aktualnego segmentu, w którym znajduje się najechanie myszy, zostało tymczasowo zapisane na poziomie 0 USD.

onRebootNieudał się:
Funkcja ta jest wywoływana, gdy instrukcja Reboot się nie powiedzie. WriteUninstaller, wtyczki, File oraz WriteRegBin nie mogą być używane do tej funkcji callback.

onSelChange:
Dzwonię, gdy zmieniono opcje strony wyboru komponentów. Powszechnie używane do używania SectionSetFlags i SectionGetFlags.

onUserAbort:
To wezwanie jest wywoływane, gdy użytkownik kliknie przycisk "anuluj" i instalacja jeszcze się nie powiodła. Jeśli funkcja wywoła Abort, instalacja nie zostanie zakończona.

onVerifyInstDir:
To odwołanie pozwala instalatorowi kontrolować, czy ścieżka instalacji jest prawidłowa, czy nie. Kod ten jest wywoływany raz za każdym razem, gdy użytkownik zmienia ścieżkę instalacji. Jeśli funkcja wywoła Abort, ścieżka do $INSTDIR jest uznawana za nieprawidłową.

ONZ. GUIInit:
Callback zostanie wywołany przed załadowaniem pierwszej strony i wyświetleniem dialogu odinstalatora, co pozwoli dostosować interfejs odinstalatora.

un.onInit:
To wezwanie zostanie wywołane, gdy deinstalator zbliża się do zakończenia inicjalizacji. Jeśli funkcja un.onInit używa Abort, odinstalator natychmiast się kończy. Uwaga: Funkcja może walidować i/lub modyfikować $INSTDIR, jeśli jest to potrzebne.

un.onUninstFailed:
Funkcja odwołania jest wywoływana, gdy użytkownik kliknie przycisk "Anuluj" po niepowodzeniu odinstalowania (jeśli użyto polecenia Przerwanie lub innego nieudanego polecenia).

un.onUninstSuccess:
Callback jest wywoływany przed sukcesem odinstalowania i słusznie zamyka okno deinstalatora (prawdopodobnie po kliknięciu "zamknij" przez użytkownika, jeśli SetAutoClose jest ustawione na false).

un.onGUIEnd:
Callback jest wywoływany tuż po zamknięciu okna deinstalatora. Używam do udostępniania wtyczek związanych z interfejsem użytkownika, gdy jest to potrzebne.

un.onRebootNieudał:
Funkcja ta jest wywoływana, gdy instrukcja Reboot się nie powiedzie. WriteUninstaller, wtyczki, File oraz WriteRegBin nie mogą być używane do tej funkcji callback.

un.onUserAbort:
To wezwanie jest wywoływane, gdy użytkownik kliknie przycisk "Anuluj" i odinstalowanie nie zakończyło się niepowodzeniem. Jeśli funkcja wywoła Abort, odinstalator nie zostanie zakończony.

 Ziemianin| Opublikowano 28.01.2024 12:07:23 |
Wywołanie musi być używane z nazwami funkcji zaczynającymi się od "un." w sekcji odinstalowania.
Usage: Call function_name | [:label_name]


NSIS ma warunki nazewnictwa – funkcje wywoływane z deinstalatora muszą mieć prefiks w nazwie "un".

Rozwiązanie jest następujące:

Odniesienie:

Logowanie do linku jest widoczne.
Logowanie do linku jest widoczne.

 Ziemianin| Opublikowano 28.01.2024 15:10:07 |
 Ziemianin| Opublikowano 09.05.2024 09:46:16 |
Advanced Installer to potężny generator pakietów instalacyjnych MSI, który generuje certyfikowane instalatory Windows MS Windows z przyjaznym dla użytkownika graficznym interfejsem, intuicyjnym i bardzo prostym elementem, co czyni go dobrym pisarzem instalatorów Windows.
 Ziemianin| Opublikowano 21.02.2025 17:36:44 |
Inno Setup to darmowy instalator programów Windows opracowany przez Jordana Russella i Martijna Laana. Inno Setup został wprowadzony na rynek w 1997 roku i dziś rywalizuje, a nawet przewyższa wiele komercyjnych instalatorów pod względem funkcji i stabilności.

Strona internetowa:Logowanie do linku jest widoczne.

Case: Ollama Windows application,Logowanie do linku jest widoczne.
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com