Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 3956|Відповідь: 6

NSIS (1) Зробити простий інсталятор

[Копіювати посилання]
Опубліковано 28.01.2024 09:42:28 | | | |
Вимоги: Розробив додаток за допомогою Winform і хотів створити інсталятор для встановлення та виконання цього додатку, показуючи, що продукт більш формальний.

Вступ до NSIS

NSIS (Nullsoft Scriptable Install System) — це професійна система з відкритим кодом для створення інсталяторів Windows. Він розроблений так, щоб бути максимально компактним і гнучким, що робить його ідеальним для інтернет-розповсюдження.

Як перший досвід користувача з продуктом, стабільний і надійний інсталятор є важливою складовою успішного програмного забезпечення. За допомогою NSIS ви можете створити такий інсталятор, здатний виконувати всі операції, необхідні для встановлення програмного забезпечення.

NSIS базується на скриптах, що дозволяє створювати логіку для виконання найскладніших завдань інсталяції. Вже доступно багато плагінів і скриптів: ви можете створювати веб-інсталятори, спілкуватися з Windows та іншими програмними компонентами, встановлювати або оновлювати спільні компоненти та багато іншого.


Завантажити NSIS:

Вхід за гіперпосиланням видно.
Вхід за гіперпосиланням видно.

Плагіни NSIS:Вхід за гіперпосиланням видно.

HM NIS EDIT завантаження:

Вхід за гіперпосиланням видно.
Вхід за гіперпосиланням видно.

HM NIS EDIT: Безкоштовний редактор/IDE: HM NIS Edit — найкращий редактор/IDE для системи встановлення скриптів Nullsoft (NSIS). Він дуже корисний для експертів і початківців, які використовують NSIS для створення інсталяторів. Його майстер скриптів допоможе створити стандартний інсталятор всього за кілька кліків, а дизайнер InstallOptions допоможе створити власні власні сторінки з зручним інтерфейсом перетягування.

Завантаження та встановлення

Завантажте програмне забезпечення NSIS та HM NIS EDIT, спочатку встановіть NSIS, а потім HM NIS EDIT, як показано нижче:



Зробіть установковий пакет

Створіть новий додаток Winform, використайте інструмент IDE для створення нового Winform-додатку на основі .NET framework 4.7.2 (опущено), скомпілюйте його та використайте NSIS для створення інсталяційного пакету.

Відкрийте інструмент редагування HM NIS і виберіть File-> New Script: Wizard, як показано нижче:



Налаштуйте інформацію про заявку відповідно до вашої реальної ситуації, як показано на рисунку нижче:



Зніміть галочку «Англійська» та виберіть «Спрощена китайська», як показано на наступному рисунку:



Встановіть шлях до файлу авторизації, як показано на наступному рисунку:



Вкажіть файл додатку, видаліть існуючу конфігурацію, а потім додайте наш каталог додатків, як показано на рисунку нижче:




Натисніть «Далі», як показано нижче:



Будь ласка, заповніть програму, параметри та повідомте самостійно відповідно до вашої ситуації, як показано на рисунку нижче:



Видаліть конфігурацію програми, як показано на наступному рисунку:



Останній крок — зберегти його як script test.nsi для наступної компіляції, як показано нижче:



Скомпілюйте скрипт і згенеруйте інсталяційний пакет, як показано на рисунку нижче:



Додайте код test.nsi:

(Кінець)





Попередній:Досліджуйте теми у розширенні .Net Reactive Responsive
Наступний:Mutex у NSIS (ii) гарантує, що працює лише один інсталятор
 Орендодавець| Опубліковано 28.01.2024 10:09:14 |

функціязначення
РозділНайпростіша функція представляє відділ, який використовується для представлення компонента, який потрібно встановити; вміст розділу — це остання частина програми, яку потрібно виконати, окрім видалення інсталяції, але вона буде першою, яка перевіряє під час компіляції: якщо в програмі немає розділу чи функції, компіляція буде завершена, і блок коду в секції має бути відступений у 2 пробіли.
ФункціяВиконана функція також має бути відступена, її ім'я буде розпізнано, якщо вона визнається спеціальним ім'ям, це буде виконано за конкретних обставин, що буде пояснено нижче
Кінець секціїПозначає кінець відділу, без відступу всередині розділу
ФункціяКінецьПозначає кінець функції, як і вище
SetCompressorВстановіть алгоритм стиснення, наступні параметри — це алгоритм стиснення в майстері, тверде тіло використовує /SOLID як префікс, наприклад, твердий алгоритм lzma записується як /SOLID lzma
SetCompressorВстановіть розмір стисненого об'єму, потім число, і зазвичай це не має значення, якщо ви його не записаєте
OutFileВизначте шлях скомпільованого інсталяційного пакету (шлях майбутніх інсталяційних пакетів, а не в яку папку його помістити)
Ім'яВстановіть назву продукту, зазвичай назву додатку + версію додатку, написану на першому кроці майстра
InstallDirПредставляє шлях встановлення за замовчуванням, який заповнюється в першому рядку четвертого кроку майстра, що визначає значення $INSTDIR
ShowInstDetailsПараметри не є простими true і false, а show, hide і nevershow, що означає, що деталі автоматично відображаються, кнопка користувача відображає деталі, а інсталяційні деталі не можна бачити
ShowUnInstDetailsВказує, чи відображаються деталі видалення, а параметри збігаються з ними
BrandingTextВідображає інформацію внизу інсталяційного пакету, тобто останній рядок власного тексту на першому кроці майстера, який може приймати два параметри: один — текст, який потрібно відобразити, а опціональний параметр — /TRIM, який може визначати напрямок вирівнювання тексту (ЛІВО, ПРАВОРУЧ або ЦЕНТР, за замовчуванням потрібно записувати ЛІВО, /TRIMLEFT, /TRIMRIGHT або /TRIMCENTER без жодних розділень між ними)
SetOutPathЙого можна записувати лише на першому рядку розділу, який визначає місце встановлення компонента, представленого секцією; на відміну від InstallDir, SetOutPath дозволяє встановлювати різні компоненти в різних підкаталогах загальної інсталяційної директорії, рекомендується встановити папку $INSTDIR\ з іменем компонента (або, якщо компоненти взаємозалежні, можна окремо регулювати шлях компонента).
SetOverWriteЙого можна записувати лише в Section, який використовується для налаштування чи перезаписувати при встановленні, а параметри можна встановити так: завжди перезаписувати (on), ніколи не перезаписувати (off), перезаписувати при новішому (ifnewer), перезаписувати при іншому вмісті файлу (ifdiff) і спробувати перезаписати (try), що відповідає п'ятому кроку майстра > редагування елементів каталогу
ФайлЙого можна написати лише в Section, тобто розділ містить і упаковані файли, а параметр /r escaping представляє файли та папки з підкаталогами, а відповідні кроки майстера збігаються з попереднім вище. Параметр /x використовується для виключення файлів, можна записати /x "*.ico" "xxx\*", що означає виключення ICO файлів і всіх файлів у піддиректорії xxx, що відповідає кроку 5 майстра
CreateDictionaryСтворіть папку з повним або відносним шляхом до папки
CreateShortcutСтворіть ярлик: перший — це шлях до ярлика (суфікс .lnk), а другий — шлях ярлика до файлу, що відповідає нижній частині шостого кроку майстра
WriteUninstallerСтворіть деінсталятор, а потім вкажіть ім'я шляху деінсталятора
WriteRegStrЗапишіть у реєстр, який зазвичай не потрібно змінювати, просто слідуйте майстру для генерації
ВидалитиЗазвичай у розділі видалення видаляють один файл, а потім шлях до видаленого файлу, оскільки це один файл, додати /r не можна
RMDirЗазвичай у розділі видалення видаляють папку та всі файли в папці, потім шлях до видаленого каталогу, перший зазвичай має вручну додати /r, майстер не додав його вам, якщо не додати, залишок видаляється. Найкраще написати цю команду по одному разу для кожного підкаталогу, потрібно додати /r, а потім видалити загальний каталог RMDir "$INSTDIR"
DeleteRegKeyЩоб видалити інформацію з реєстру, зазвичай можна скористатися майстром для її генерації
SetAutoCloseЙого можна записати лише в розділі, вказуючи, чи буде він автоматично переходити на інтерфейс завершення після завершення встановлення, з параметрами true і false
AutoCloseWindowЗдається, це не має жодного ефекту, функція схожа на попередню, але її можна записати поза розділом, і параметри такі ж, як і вище
ПовідомленняПоле повідомлення можна записувати лише у розділі або функції, існує багато параметрів, включаючи інформацію про відображення, попередження про відображення, запит «так», запит okcancelretry тощо, введіть Messagebox у VNISEdit для отримання списку всіх параметрів, а потім підключіть вміст, що відображається у вікні повідомлення
ПерерватиБлокування, очікування відповіді користувача
HideWindowПриховане вікно, зазвичай використовується для видалення Section, деінсталятор спочатку видаляє себе, потім видаляє інші файли (так, програма все ще працює) і автоматично закриває вікно після видалення


 Орендодавець| Опубліковано 28.01.2024 11:07:28 |
Функція зворотного виклику

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

.onGUIInit
.onInit
.onGUIEенд
.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:
Ця функція зворотного виклику викликається, коли користувач натискає кнопку «скасування» після невдачі встановлення (якщо інсталятор не може відпустити файли або якщо скрипт встановлення використовує команду Abort).

onInstSuccess:
Зворотний виклик викликається до успішного встановлення і закриття вікна встановлення (якщо AutoCloseWindow або SetAutoClose встановлені як false, це може статися після натискання користувача «Close»).

onGUIEand:
Зворотний виклик викликається одразу після закриття вікна інсталятора. Використовуйте для випуску будь-яких плагінів, пов'язаних із інтерфейсом користувача, коли це потрібно.

onMouseOverSection:
Зворотний виклик викликається щоразу, коли миша рухається над вікном вибору секції дерева. Це дозволяє встановити зразковий опис для кожного сегмента. ID поточного сегмента, де розташований курсор миші, тимчасово збережено на рівні $0.

onRebootFailed:
Ця функція зворотного виклику викликається, коли інструкція перезавантаження не виконує. WriteUninstaller, плагіни, File та WriteRegBin не можуть бути використані для цієї функції зворотного виклику.

onSelChange:
Викликається, коли змінюються параметри сторінки вибору компонентів. Зазвичай використовується для використання SectionSetFlags і SectionGetFlags.

onUserAbort:
Цей зворотний виклик викликається, коли користувач натискає кнопку «скасувати», а встановлення ще не завершилося. Якщо функція викликає Abort, інсталяція не виходить.

onVerifyInstDir:
Цей зворотний виклик дозволяє вашому інсталятору контролювати, чи є шлях встановлення дійсним. Цей код викликає один раз щоразу, коли користувач змінює шлях встановлення. Якщо функція викликає Abort, шлях до $INSTDIR вважається недійсним.

ООН. GUIInit:
Зворотний виклик буде викликаний до завантаження першої сторінки, і з'явиться діалогова лінія Uninstaller, що дозволяє налаштувати інтерфейс деінсталятора.

un.onInit:
Цей зворотний виклик буде викликаний, коли деінсталятор наближається до завершення ініціалізації. Якщо функція un.onInit використовує Abort, деінсталятор негайно виходить. Примітка: функція може валідувати та/або змінювати $INSTDIR за потреби.

un.onUninstFailed:
Ця функція зворотного виклику викликається, коли користувач натискає кнопку «Скасувати» після невдалого видалення (якщо використано команду Abort або іншу невдалу команду).

un.onUninstSuccess:
Зворотний виклик викликається до успішного видалення і справедливо закриває вікно деінсталятора (можливо, після того, як користувач натисне «закрити», якщо SetAutoClose встановлено як false).

un.onGUIEnd:
Зворотний виклик викликається одразу після закриття вікна деінсталятора. Використовуйте для випуску будь-яких плагінів, пов'язаних із інтерфейсом користувача, коли це потрібно.

un.onRebootFailed:
Ця функція зворотного виклику викликається, коли інструкція перезавантаження не виконує. WriteUninstaller, плагіни, File та WriteRegBin не можуть бути використані для цієї функції зворотного виклику.

un.onUserAbort:
Цей зворотний виклик викликається, коли користувач натискає кнопку «Скасувати» і видалення не відбулося. Якщо функція викликає 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/
 Орендодавець| Опубліковано 09.05.2024 09:46:16 |
Advanced Installer — це потужний виробник інсталяційних пакетів MSI, який генерує сертифіковані Windows інсталятори MS Windows з зручним графічним інтерфейсом, інтуїтивно зрозумілим і дуже простим, що робить його хорошим редактором для Windows-інсталяторів.
 Орендодавець| Опубліковано 21.02.2025 17:36:44 |
Inno Setup — це безкоштовний інсталятор програм для Windows, розроблений Джорданом Расселом і Мартейном Лааном. Inno Setup була вперше запущена у 1997 році і сьогодні конкурує та навіть перевершує багатьох комерційних інсталяторів за набір функцій і стабільністю.

Вебсайт:Вхід за гіперпосиланням видно.

Випадок: додаток Ollama Windows,Вхід за гіперпосиланням видно.
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com