Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 3956|Отговор: 6

NSIS (1) Направете прост инсталатор

[Копирай линк]
Публикувано в 28.01.2024 г. 9:42:28 ч. | | | |
Изисквания: Разработих приложение с Winform и исках да направя инсталатор за инсталиране и изпълнение на това приложение, което показва, че продуктът е по-формален.

Въведение в NSIS

NSIS (Nullsoft Scriptable Install System) е професионална система с отворен код за създаване на Windows инсталатори. Той е проектиран да бъде възможно най-малък и гъвкав, което го прави идеален за интернет разпространение.

Като първи опит на потребителя с продукт, стабилният и надежден инсталатор е важна част от успешния софтуер. С NSIS можете да създадете такъв инсталатор, който е способен да извършва всички операции, необходими за инсталиране на софтуер.

NSIS е базиран на скриптове, което ви позволява да създавате логика за обработка на най-сложните инсталационни задачи. Много плъгини и скриптове вече са налични: можете да създавате уеб инсталатори, да комуникирате с Windows и други софтуерни компоненти, да инсталирате или актуализирате споделени компоненти и още.


Изтегляне на NSIS:

Входът към хиперлинк е видим.
Входът към хиперлинк е видим.

NSIS плъгини:Входът към хиперлинк е видим.

HM NIS EDIT изтегляне:

Входът към хиперлинк е видим.
Входът към хиперлинк е видим.

HM NIS EDIT: Безплатен NSIS редактор/IDE: HM NIS Edit е най-добрият редактор/IDE за Nullsoft Script Installation System (NSIS). Той е много полезен за експерти и начинаещи, които използват NSIS, за да създават инсталатори. Неговият майстор за скриптове ще ви помогне да създадете стандартен инсталатор само с няколко клика, а дизайнерът на InstallOptions ще ви помогне да създадете собствени персонализирани страници с удобен интерфейс за плъзгане и пускане.

Изтегляне и инсталиране

Изтеглете софтуера NSIS и HM NIS EDIT, инсталирайте първо NSIS, а след това инсталирайте HM NIS EDIT, както е показано по-долу:



Направете инсталационен пакет

Създайте ново Winform приложение, използвайте инструмента IDE, за да създадете ново Winform приложение на .NET framework 4.7.2 (пропуснато), компилирайте го и използвайте NSIS за създаване на инсталационен пакет.

Отворете инструмента HM NIS EDIT и изберете File-> New Script: Wizard, както е показано по-долу:



Персонализирайте информацията за кандидатурата според вашата реална ситуация, както е показано на фигурата по-долу:



Махнете отметката "Английски" и изберете "Опростен китайски", както е показано на следващата фигура:



Задайте пътя към авторизационния файл, както е показано на следната фигура:



Посочете файла на приложението, изтрийте съществуващата конфигурация и след това добавете нашата директория с приложения, както е показано на фигурата по-долу:




Кликнете на Следващо, както е показано по-долу:



Моля, попълнете програмата, параметрите и самодокладвайте според вашата ситуация, както е показано на фигурата по-долу:



Деинсталирайте конфигурацията на програмата, както е показано на следващата фигура:



Последната стъпка е да се запази като test.nsi скрипт за следващата компилация, както е показано по-долу:



Компилирайте скрипта и генерирайте инсталационния пакет, както е показано на фигурата по-долу:



Прикачете кода test.nsi:

(Край)





Предишен:Разгледайте теми в разширението .Net Reactive Responsive
Следващ:Mutex в NSIS (ii) гарантира, че работи само един инсталатор
 Хазяин| Публикувано в 28.01.2024 г. 10:09:14 ч. |

функциязначение
РазделНай-основната функция представлява отдел, използван за представяне на компонент, който трябва да бъде инсталиран; съдържанието на секцията е последната част от програмата, която трябва да се изпълни, освен при деинсталиране, но тя ще бъде първата, която проверява при компилиране, ако няма секция или функция в програмата, компилацията ще бъде прекратена, а кодовият блок в секцията трябва да бъде отстъпен до 2 пространства
ФункцияИзпълняваната функция също трябва да бъде отстъпена, името ѝ ще бъде разпознато, ако се разпознае като специално име, тя ще бъде изпълнена при определени обстоятелства, които ще бъдат обяснени по-долу
Край на секциятаПоказва края на отдела, не е вдлъбнат вътре в секцията
FunctionEndПоказва края на функцията, както по-горе
SetCompressorЗадайте алгоритъма за компресия, следните параметри са алгоритъмът за компресия в магьосника, твърдото тяло използва /SOLID като префикс, например алгоритъмът за твърда lzma се записва като /SOLID lzma
SetCompressorЗадайте размера на компресирания обем, последван от число, и обикновено няма значение, ако не го запишете
OutFileИзбери пътя на компилирания инсталационен пакет (пътят на бъдещите инсталационни пакети, а не в коя папка да го сложиш)
ИмеЗадайте името на продукта, обикновено името на приложението + версията на приложението, написана в първата стъпка на магьосника
InstallDirПредставлява стандартния път за инсталация, който се попълва в първия ред на четвъртата стъпка на магьосника, който определя стойността на $INSTDIR
ShowInstDetailsПараметрите не са просто истина и лъжа, а показване, скриване и невиждане, което показва, че детайлите се показват автоматично, потребителският бутон показва детайлите, а инсталационните детайли не могат да се виждат
ShowUnInstDetailsПоказва дали детайлите за деинсталацията са показани и параметрите са същите като по-горе
BrandingTextПоказва информацията в долната част на инсталационния пакет, тоест последния ред с персонализиран текст в първата стъпка на магьосника, който може да приеме два параметъра – единият е текстът за показване, а опционалният параметър е /TRIM, който може да определи посоката на подравняване на текста (ЛЯВО, ДЯСНО или ЦЕНТЪР, по подразбиране е ЛЯВО, /TRIMLEFT, /TRIMRIGHT или /TRIMCENTER, без никакво разделяне между тях)
SetOutPathМоже да се запише само на първия ред на секцията, която определя мястото на инсталация на компонента, представен от секцията, за разлика от InstallDir, SetOutPath позволява различни компоненти да се инсталират в различни поддиректории на общата инсталационна директория, препоръчва се да се зададе на $INSTDIR\ папка с името на компонента (или ако компонентите са взаимозависими, можете да коригирате пътя на компонента отделно).
SetOverWriteМоже да се запише само в Section, който се използва за задаване дали да се презаписва при инсталиране, а параметрите могат да бъдат зададени да бъдат винаги презаписване (включено), никога презаписване (изключено), презаписване при ново (ifnewer), презаписване при различно съдържание на файла (ifdiff) и опит за презаписване (try), което съответства на петата стъпка на магьосника > редактиране на директориите
ФайлМоже да се пише само в Section, което означава, че Section съдържа пакетирани файлове, а параметърът за избягване на /r представлява файлове и папки, съдържащи поддиректории, а съответните стъпки на Wizard са същите като по-горе. Параметърът /x се използва за изключване на файлове, можете да напишете /x "*.ico" "xxx\*", което означава изключване на ICO файлове и всички файлове в xxx поддиректорията, което съответства на стъпка 5 на магьосника
CreateDictionaryСъздайте папка, последвана от пълния или относителен път на папката
CreateShortcutСъздайте пряк път, първият е пътят на прекия път (суфикс .lnk), а вторият е пътят на прекия път към файла, съответстващ на долната част на стъпка 6 на магьосника
WriteUninstallerСъздайте деинсталатор, последван от името на пътя на деинсталатора
WriteRegStrЗапиши в регистъра, който обикновено не се налага да се променя, просто следвай майстора, за да генерираш
ИзтривамОбикновено в секцията за деинсталиране изтриваш един файл, последван от пътя на изтрития файл, тъй като е един файл, не можеш да добавиш /r
RMDirОбикновено в секцията за деинсталиране изтриваш директорията и всички файлове в нея, последван от пътя към изтритата директория, първият обикновено трябва ръчно да добави /r, майсторът не ти го е добавил, ако не го добавиш, ще деинсталира остатъка, най-добре е да напишеш тази команда веднъж за всяка поддиректория, трябва да добавиш /r и накрая да премахнеш общата директория RMDir "$INSTDIR"
DeleteRegKeyЗа да изтриете информацията от регистъра, обикновено можете да следвате магьосника, за да я генерирате
SetAutoCloseТя може да бъде написана само в Секцията, като посочва дали автоматично ще премине към интерфейса за завършване след приключване на инсталацията, с параметрите вярно и невярно
AutoCloseWindowНе изглежда да има ефект, функцията изглежда същата като предишната, но може да бъде написана извън секцията, а параметрите са същите като по-горе
Кутия за съобщенияПолето за съобщения може да се пише само в секция или функция, има много параметри, включително показване на информация, предупреждение за показване, запитване с да не, запитване okcancelretry и др., въвеждане на Messagebox във VNISEdit за списък с всички параметри и след това свързване на съдържанието, показано в полето за съобщения
Прекратявамблокиране, чакане потребителят да отговори
HideWindowСкрит прозорец, обикновено използван за деинсталиране на Section, деинсталаторът първо се изтрива сам, след това изтрива другите файлове (да, програмата все още работи) и автоматично затваря прозореца след изтриване.


 Хазяин| Публикувано в 28.01.2024 г. 11:07:28 ч. |
Функция за обратно извикване

Функция за обратно повикване при инсталация

.onGUIInit
.onInit
.onGUIEand
.onRebootFailed
.onSelChange
.onUserAbort
.onVerifyInstDir

Функция за обратна повикване при деинсталиране

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


Подробностите са следните:

onGUIInit:
Обратната повикване ще бъде извикана преди първата страница да се зареди и да се покаже диалогът на инсталатора, което ви позволява да нагласите потребителския интерфейс.

onInit:
Този обратен позив ще бъде извикан, когато инсталаторът е близо до завършване на инициализацията. Ако функцията .onInit извика Abort, инсталаторът излиза веднага.

onInstFailed:
Тази функция за обратно извикване се извиква, когато потребителят натисне бутона "cancel" след неуспех при инсталацията (ако инсталаторът не може да освободи файлове или ако инсталационният скрипт използва командата Abort).

onInstSuccess:
Обратният позив се извиква преди инсталацията да е успешна и прозорецът за инсталация да се затвори (ако AutoCloseWindow или SetAutoClose са настроени на false, може да стане след като потребителят натисне "Close").

onGUIEand:
Обратният позив се извиква веднага след като прозорецът на инсталатора е затворен. Използвайте за пускане на плъгини, свързани с потребителския интерфейс, когато е необходимо.

onMouseOverSection:
Обратният позив се извиква всеки път, когато мишката се движи над полето за избор на дървовидна секция. Това ви позволява да зададете примерно описание за всеки сегмент. ID-то на текущия сегмент, където се намира мишката, временно е запазено на $0.

onRebootFailed:
Тази функция за обратно извикване се извиква, когато инструкцията за рестартиране не успее. WriteUninstaller, плъгини, File и WriteRegBin не могат да се използват за тази функция за обратно извикване.

onSelChange:
Извиква се, когато се променят опциите за избор на компоненти. Често се използва за използване на SectionSetFlags и SectionGetFlags.

onUserAbort:
Това обратно повикване се извиква, когато потребителят натисне бутона "cancel" и инсталацията все още не е провала. Ако функцията извика Abort, инсталацията няма да излезе.

onVerifyInstDir:
Този обратен позив позволява на инсталатора да контролира дали инсталационният път е валиден или не. Този код се извиква веднъж всеки път, когато потребителят промени пътя на инсталацията. Ако функцията извика Abort, пътят към $INSTDIR се счита за невалиден.

ООН. GUIInit:
Обратната повикване ще бъде извикана преди да се зареди първата страница и да се покаже диалогът Uninstaller, което ви позволява да нагласите интерфейса на деинсталатора.

un.onInit:
Този обратен позив ще бъде извикан, когато деинсталаторът е близо до завършване на инициализацията. Ако функцията un.onInit използва Abort, деинсталаторът излиза веднага. Забележка: Функцията може да валидира и/или модифицира $INSTDIR при нужда.

un.onUninstFailed:
Тази функция за обратно извикване се извиква, когато потребителят натисне бутона "Cancel" след неуспешен деинсталация (ако се използва командата Abort или друга неуспешна команда).

un.onUninstУспех:
Обратният позив се извиква преди деинсталацията да е успешна и оправдано затваря прозореца за деинсталатора (възможно след като потребителят натисне "затвори", ако SetAutoClose е настроен на false).

un.onGUIEand:
Обратният разговор се извиква веднага след като прозорецът за деинсталатор е затворен. Използвайте за пускане на плъгини, свързани с потребителския интерфейс, когато е необходимо.

un.onRebootFailed:
Тази функция за обратно извикване се извиква, когато инструкцията за рестартиране не успее. WriteUninstaller, плъгини, File и WriteRegBin не могат да се използват за тази функция за обратно извикване.

un.onUserAbort:
Този обратен позив се активира, когато потребителят натисне бутона "Cancel" и деинсталацията не е провалена. Ако функцията извика Abort, деинсталаторът няма да излезе.

 Хазяин| Публикувано в 28.01.2024 г. 12:07:23 ч. |
Извикването трябва да се използва с имена на функции, започващи с "un." в секцията за деинсталиране.
Usage: Call function_name | [:label_name]


NSIS има условия за именуване – функции, извикани от деинсталатора, трябва да имат префикс в името "un".

Решението е следното:

Препратка:

Входът към хиперлинк е видим.
Входът към хиперлинк е видим.

 Хазяин| Публикувано в 28.01.2024 г. 15:10:07 ч. |
Документация на NSIS:https://documentation.help/NSIS/
 Хазяин| Публикувано в 9.05.2024 г. 9:46:16 ч. |
Advanced Installer е мощен производител на инсталационни пакети за MSI, който генерира сертифицирани Windows инсталатори с удобен за потребителя графичен интерфейс, интуитивен и много прост интерфейс, което го прави добър редактор за Windows Installer.
 Хазяин| Публикувано в 21.02.2025 г. 17:36:44 ч. |
Inno Setup е безплатен инсталатор на Windows програми, разработен от Джордан Ръсел и Мартейн Лаан. Inno Setup беше пусната за първи път през 1997 г. и днес конкурира и дори надминава много комерсиални инсталатори по отношение на набор от функции и стабилност.

Уебсайт:Входът към хиперлинк е видим.

Случай: Ollama Windows приложение,Входът към хиперлинк е видим.
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com