Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 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 (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: Мастер, как показано ниже:



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



Снимите галочку «Английский» и выберите «Упрощённый китайский», как показано на следующем рисунке:



Задайте путь к файлу авторизации, как показано на следующем рисунке:



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




Нажмите «Далее», как показано ниже:



Пожалуйста, заполните программу, параметры и самоотчёт в соответствии с вашей ситуацией, как показано на рисунке ниже:



Удалите конфигурацию программы, как показано на следующем рисунке:



Последний шаг — сохранить его как скрипт test.nsi для следующей компиляции, как показано ниже:



Скомпилируйте скрипт и сгенерируйте установочный пакет, как показано на рисунке ниже:



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

(Конец)





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

функциязначение
СекцияСамая базовая функция представляет собой отдел, используемый для представления компонента, который нужно установить — содержимое раздела — это последняя часть программы, которую нужно выполнить, кроме удаления, но при компиляции она будет первым, кто проверяет: если в программе нет раздела или функции, компиляция завершается, и блок кода в разделе должен быть отступлен в 2 пробелы
ФункцияВыполняемая функция также должна быть отступной, её имя будет распознаться, если она признаётся как специальное имя, она будет выполнена при определённых обстоятельствах, которые будут объяснены ниже
Раздел КонецОбозначает конец отдела, не отступ внутри раздела
FunctionEndУказывает конец функции, как и выше
SetCompressorУстановите алгоритм сжатия, следующие параметры — это алгоритм сжатия в мастере, твердое тело использует /SOLID в качестве префикса, например, твердый алгоритм lzma записывается как /SOLID lzma
SetCompressorУстановите размер сжатого объёма, затем число, и обычно это не имеет значения, если вы его не записываете
OutFileОпределите путь скомпилированного установочного пакета (путь будущих установочных пакетов, а не в какую папку положить)
ИмяЗадайте название продукта, обычно имя приложения + версию приложения, написанную на первом шаге мастера
InstallDirПредставляет путь установки по умолчанию, который заполняется в первой строке четвёртого шага мастера и определяет значение $INSTDIR
ShowInstDetailsПараметры не просты true и false, а показывать, скрывать и никогда не показывать, что означает, что детали отображаются автоматически, кнопка пользователя отображает детали, а детали установки не разрешены видеть
ShowUnInstDetailsПоказывает, отображаются ли детали удаления, а параметры те же, что и выше
BrandingTextОтображается информация внизу пакета установки, то есть последняя строка пользовательского текста на первом шаге мастера, которая может принимать два параметра: один — текст для отображения, а опциональный параметр — /TRIM, который может определять направление выравнивания текста (LEFT, RIGHT или CENTER, по умолчанию LEFT, /TRIMLEFT, /TRIMRIGHT или /TRIMCENTER должны записываться без разделения между ними)
SetOutPathЕго можно записать только на первой строке раздела, который определяет место установки компонента, представленного разделом; в отличие от InstallDir, SetOutPath позволяет устанавливать разные компоненты в разные подкаталоги каталога общей установки, рекомендуется установить папку $INSTDIR\ с именем компонента (или, если компоненты взаимозависимы, можно отдельно корректировать путь компонента).
SetOverWriteЕго можно записывать только в Section, который используется для настройки перезаписи при установке, а параметры могут быть установлены: всегда перезаписывать (on), never перезаписывать (off), перезаписывать при новом (ifnewer), перезаписывать, если содержимое файла отличается (ifdiff) и пытаться перезаписать (try), что соответствует пятому шагу мастера > редактирования элементов каталога
ФайлОн может быть написан только в Section, то есть раздел содержит и упакованные файлы, а параметр /r Escap представляет файлы и папки с подкаталогами, а соответствующие шаги мастера совпадают с выше. Параметр /x используется для исключения файлов, вы можете записать /x "*.ico" "xxx\*", что означает исключение ICO файлов и всех файлов в подкаталоге xxx, что соответствует шагу 5 мастера
CreateDictionaryСоздайте папку, за которой следует полный или относительный путь папки
CreateShortcutСоздайте ярлык: первый — это путь ярлыка (суффикс .lnk), а второй — путь ярлыка к файлу, соответствующий нижней части шага 6 мастера
WriteUninstallerСоздайте деинсталлятор, затем введите имя пути деинсталлятора
WriteRegStrПишите в реестр, который обычно не нужно менять, просто следуйте мастеру для генерации
УдалитьОбычно в разделе удаления удаляют один файл, затем путь к удалённому файлу, поскольку это один файл, добавить /r нельзя
RMDirОбычно в разделе удаления удалите папку и все файлы из неё, затем путь к удалённой папке, первый обычно должен вручную добавить /r, мастер не добавил её, если не добавить, остаток удалит. Лучше всего написать эту команду по одному разу для каждого подкаталога, нужно добавить /r, и в итоге удалить общий каталог RMDir «$INSTDIR».
DeleteRegKeyЧтобы удалить информацию из реестра, обычно можно воспользоваться мастером для её генерации
SetAutoCloseЕго можно записать только в разделе, указывающем, будет ли он автоматически перейти на интерфейс завершения после завершения установки, с параметрами истинного и ложного
AutoCloseWindowПохоже, что это не влияет на ситуацию, функция такая же, как и предыдущая, но её можно записать вне раздела, и параметры такие же, как выше
MessageboxОкно сообщений можно записать только в разделе или функции, существует множество параметров, включая информацию о отображении, предупреждение о отображении, запрос «да», запрос okcancelretry и т.д., введите Messagebox в VNISEdit для получения списка всех параметров, а затем подключите содержимое в окне сообщений
ПрерватьБлокировка, ожидание ответа пользователя
HideWindowСкрытое окно, обычно используемое для удаления Section, деинсталлятор сначала удаляет себя, затем удаляет остальные файлы (да, программа всё ещё работает) и автоматически закрывает окно после удаления


 Хозяин| Опубликовано 28.01.2024 11:07:28 |
функция обратного вызова

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

.onGUIInit
.onInit
.onGUIEи
.onRebootFail
.onSelChange
.onUserAbort
.onVerifyInstDir

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

un.onGUIInit
un.onInit
un.onUninstFailed
un.onUninstSuccess
un.onGUIи
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:
Эта функция обратного вызова вызывается, когда пользователь нажимает кнопку «Cancel» после неудачи удаления (если используется команда Abort или другая неудачная команда).

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

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

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 9:46:16 |
Advanced Installer — это мощный производитель установочных пакетов для MSI, который генерирует сертифицированные установщики 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