이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 3956|회답: 6

NSIS (1) 간단한 설치 프로그램 만들기

[링크 복사]
게시됨 2024. 1. 28. 오전 9:42:28 | | | |
요구사항: Winform을 사용해 애플리케이션을 개발했고, 이 애플리케이션을 설치하고 실행할 설치 프로그램을 만들고 싶어 했습니다. 이 제품이 더 형식적임을 보여주고자 합니다.

NSIS 소개

NSIS(Nullsoft Scriptable Install System)는 Windows 설치 프로그램을 만들기 위한 전문 오픈소스 시스템입니다. 이 장치는 가능한 한 작고 유연하게 설계되어 인터넷 배포에 이상적입니다.

사용자가 제품을 처음 경험할 때, 안정적이고 신뢰할 수 있는 설치 프로그램은 성공적인 소프트웨어의 중요한 부분입니다. NSIS를 사용하면 소프트웨어 설치에 필요한 모든 작업을 수행할 수 있는 설치 프로그램을 만들 수 있습니다.

NSIS는 스크립트 기반으로, 가장 복잡한 설치 작업을 처리할 수 있는 로직을 만들 수 있습니다. 이미 많은 플러그인과 스크립트가 제공되어 있습니다: 웹 설치 프로그램을 만들고, Windows 및 기타 소프트웨어 컴포넌트와 통신하며, 공유 컴포넌트를 설치하거나 업데이트하는 등 다양한 기능을 할 수 있습니다.


NSIS 다운로드:

하이퍼링크 로그인이 보입니다.
하이퍼링크 로그인이 보입니다.

NSIS 플러그인:하이퍼링크 로그인이 보입니다.

HM NIS 편집 다운로드:

하이퍼링크 로그인이 보입니다.
하이퍼링크 로그인이 보입니다.

HM NIS EDIT: 무료 NSIS 편집기/IDE: HM NIS 편집기는 Nullsoft Script 설치 시스템(NSIS)에 가장 적합한 편집기/IDE입니다. NSIS를 사용하는 전문가와 초보자가 설치 프로그램을 만드는 데 매우 유용합니다. 스크립트 마법사는 몇 번의 클릭만으로 표준 설치 프로그램을 만들 수 있게 해주고, InstallOptions 디자이너는 친근한 드래그 앤 드롭 인터페이스로 자신만의 맞춤 페이지를 만들 수 있게 도와줍니다.

다운로드 및 설치

NSIS와 HM NIS EDIT 소프트웨어를 다운로드하고, 먼저 NSIS를 설치한 후 아래 설명과 같이 HM NIS EDIT를 설치하세요:



설치 패키지를 만드세요

새로운 Winform 애플리케이션을 만들고, IDE 도구를 사용해 .NET 프레임워크 4.7.2(생략)의 새로운 Winform 애플리케이션을 만든 뒤 컴파일한 뒤, NSIS를 사용해 설치 패키지를 만듭니다.

HM NIS EDIT 도구를 열고 아래에 표시된 대로 File-> New Script: Wizard를 선택하세요:



아래 그림에 나와 같이 실제 상황에 맞게 신청 정보를 맞춤화하세요:



"영어"를 선택 해제하고 아래 그림에 나와 같이 "간체 중국어"를 선택하세요:



아래 그림에 나타난 것처럼 인증 파일 경로를 설정하세요:



애플리케이션 파일을 지정하고 기존 구성을 삭제한 후, 아래 그림에 보이는 대로 애플리케이션 디렉터리를 추가하세요:




아래 참조와 같이 다음 채널을 클릭하세요:



아래 그림에 나와 같이 자신의 상황에 따라 프로그램, 조건, 그리고 자가 신고를 작성해 주세요:



다음 그림에 표시된 프로그램 구성을 제거하세요:



마지막 단계는 다음 컴파일용으로 test.nsi 스크립트로 저장하는 것입니다. 아래에 나와 있습니다:



아래 그림에 나와 같이 스크립트를 컴파일하고 설치 패키지를 생성합니다:



test.nsi 코드를 첨부하세요:

(끝)





이전의:.Net 반응형 확장 기능의 주제를 탐색하세요
다음:NSIS (ii) 뮤텍스는 단 하나의 설치 프로그램만 실행되도록 보장합니다
 집주인| 게시됨 2024. 1. 28. 오전 10:09:14 |

기능중요성
가장 기본적인 함수는 부서를 나타내며, 설치가 필요한 컴포넌트를 나타내는 데 사용됩니다. 섹션의 내용은 삭제를 제외하고는 프로그램에서 마지막으로 실행되는 부분이지만, 컴파일 시 가장 먼저 확인합니다. 프로그램에 섹션이나 함수가 없으면 컴파일이 종료되고, 섹션 내 코드 블록은 2칸으로 들여쓰기해야 합니다
기능실행된 함수는 들여쓰기를 해야 하며, 함수 이름이 인식되고, 특별 이름으로 인식되면 특정 상황에서 수행되어야 하며, 이는 아래에서 설명할 것입니다
섹션엔드부서의 끝을 나타내며, 섹션 내부에 들여쓰기로 하지 않습니다
FunctionEnd함수의 끝을 나타내며, 위와 동일합니다
세트컴프레서압축 알고리즘을 설정하세요. 다음 매개변수는 마법사의 압축 알고리즘입니다. 솔리드는 접두사로 /SOLID를 사용하며, 예를 들어 솔리드 lzma 알고리즘은 /SOLID lzma로 표기됩니다
세트컴프레서압축된 볼륨 크기를 설정하고, 그 뒤에 숫자를 붙이면, 보통 작성하지 않아도 상관없어요
아웃파일컴파일된 설치 패키지의 경로(미래 설치 패키지의 경로, 폴더가 아닌 경로)를 결정하세요
이름제품 이름을 설정하세요. 보통 마법사 첫 단계에서 작성된 애플리케이션 이름 + 앱 버전
InstallDir기본 설치 경로를 나타내며, 마법사의 네 번째 단계 첫 줄에 채워져 있어 $INSTDIR의 값을 결정합니다
쇼인스트상세 정보매개변수는 단순한 참과 거짓이 아니라 show, hide, nevershow로 표시되며, 이는 세부 정보가 자동으로 표시되고, 사용자 버튼에는 세부 정보가 표시되며, 설치 세부 정보는 볼 수 없음을 나타냅니다
ShowUnInst상세 정보삭제 세부 정보가 표시되어 있는지 나타내며, 매개변수가 위와 동일합니다
브랜딩텍스트설치 패키지 하단에 정보를 표시하는데, 마법사 첫 단계의 마지막 커스텀 텍스트 줄을 포함하며, 두 가지 매개변수를 수용할 수 있습니다. 하나는 표시할 텍스트이고, 선택적 매개변수는 /TRIM으로, 텍스트 정렬 방향을 결정할 수 있습니다(LEFT, RIGHT, CENTER, 기본값은 LEFT, /TRIMLEFT, /TRIMRIGHT 또는 /TRIMCENTER로 작성해야 하며, 중간에 구분이 없습니다)
출발 경로섹션의 첫 줄에만 작성할 수 있으며, 섹션이 나타내는 구성 요소의 설치 위치를 결정합니다. InstallDir와 달리 SetOutPath는 전체 설치 디렉터리의 서로 다른 하위 디렉터리에 서로 다른 구성 요소를 설치할 수 있게 해줍니다. 구성 요소 이름이 포함된 $INSTDIR\ 폴더로 설정하는 것이 권장됩니다(또는 구성 요소가 상호 의존적일 경우 구성 경로를 별도로 조정할 수 있습니다).
셋오버라이트Section에서만 작성할 수 있으며, 설치 시 덮어쓸지 여부를 설정하는 데 사용됩니다. 매개변수는 항상 덮어쓰기(켜짐), 절대 덮어쓰지 않기(끄짐), 새로울 때 덮어쓰기(ifnewer), 파일 내용이 다를 때(ifdiff), 덮어쓰기 시도(try)로 설정할 수 있습니다. 이는 디렉터리 항목을 편집하는 마법사의 다섯 번째 단계> 대응합니다
파일Section으로만 작성할 수 있는데, 이는 Section에 파일과 패키징된 파일을 포함하고, /r 이스케이핑 매개변수는 하위 디렉터리를 포함하는 파일과 폴더를 나타내며, 해당 마법사 단계는 위와 동일합니다. /x 매개변수는 파일을 제외하는 데 사용되며, /x "*.ico" "xxx\*"라고 쓸 수 있는데, 이는 ICO 파일을 제외하고 xxx 하위 디렉터리의 모든 파일을 제외하는 것을 의미합니다. 이는 마법사의 5단계에 해당합니다
크리에이트딕셔너리폴더를 만들고 그 폴더의 전체 또는 상대적인 경로를 따라 하세요
단축어 만들기단축키를 만드세요. 첫 번째는 단축키의 경로(접미사 .lnk), 두 번째는 위치로 가는 단축키의 경로로, 마법사 6단계의 하단에 해당합니다
WriteUninstaller언인스톨러를 만들고 그 언인스톨러의 경로 이름을 붙이세요
WriteRegStr레지스트리에 쓰기(일반적으로 변경할 필요 없고, 마법사를 따라 생성하면 됩니다)
삭제하다보통 삭제 섹션에서 단일 파일을 삭제하고, 삭제된 파일의 경로를 삭제합니다. 단일 파일이기 때문에 /r 파일을 추가할 수 없습니다
RMDir보통 삭제 섹션에서 디렉터리와 디렉터리 내 모든 파일을 삭제한 뒤, 삭제된 디렉터리의 경로를 삭제합니다. 첫 번째는 보통 수동으로 /r을 추가해야 하며, 마법사가 추가하지 않았기 때문입니다. 추가하지 않으면 잔여 파일을 삭제합니다. 각 하위 디렉터리마다 한 번씩 이 명령어를 작성하는 것이 가장 좋습니다. /r을 추가한 뒤, 마지막으로 일반 디렉터리 RMDir "$INSTDIR"를 제거해야 합니다.
DeleteRegKey레지스트리 정보를 삭제하려면 일반적으로 마법사를 따라 생성하면 됩니다
자동 닫기 설정(SetAutoClose)설치 완료 후 자동으로 완료 인터페이스로 점프할지 여부를 나타내는 섹션에만 작성할 수 있으며, 참과 거짓 매개변수를 사용합니다
자동 닫기 창효과가 없는 것 같고, 함수는 이전 것과 같지만 섹션 외부에 쓸 수 있고 매개변수도 위와 같습니다
메시지함메시지 상자는 섹션 또는 함수에만 작성할 수 있으며, 표시 정보, 경고 표시, 예스 요청, okcancelretry 요청 등 여러 매개변수가 있습니다. VNISEdit에서 메시지박스를 입력하면 모든 매개변수 목록을 얻고, 메시지 상자에 표시되는 내용을 연결해
중단하다차단, 사용자가 답변을 기다리는 과정
하이드윈도숨겨진 창은 보통 섹션을 삭제하는 데 사용되며, 인스톨로가 먼저 자신을 삭제한 뒤 다른 파일들도 삭제합니다(네, 프로그램은 여전히 실행 중입니다). 그리고 삭제 후 자동으로 창을 닫습니다


 집주인| 게시됨 2024. 1. 28. 오전 11:07:28 |
콜백 기능

설치 시 콜백 기능

.onGUIInit
.onInit
.온귀드(onGUIEnd)
.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로 설정되어 있으면 사용자가 "닫기" 후일 수 있습니다).

onGUIEnd:
콜백은 설치 프로그램이 닫힌 직후에 호출됩니다. 필요할 때 사용자 인터페이스와 관련된 플러그인을 릴리스하는 데 사용하세요.

onMouseOverSection:
마우스가 트리 섹션 선택 박스 위를 움직일 때마다 콜백이 호출됩니다. 이 기능을 통해 각 세그먼트에 대한 샘플 설명을 설정할 수 있습니다. 마우스 호버가 위치한 현재 세그먼트의 ID는 일시적으로 $0에 저장되어 있습니다.

onRebootFailed:
이 콜백 함수는 재부팅 명령어가 실패할 때 호출됩니다. WriteUninstaller, 플러그인, File, WriteRegBin은 이 콜백 기능에 사용할 수 없습니다.

onSelChange:
컴포넌트 선택 페이지 옵션이 변경될 때 호출됩니다. 일반적으로 SectionSetFlags와 SectionGetFlags를 사용할 때 사용됩니다.

onUserAbort:
이 콜백은 사용자가 "취소" 버튼을 클릭했는데 설치가 아직 실패하지 않았을 때 호출됩니다. 함수가 Abort를 호출하면 설치가 종료되지 않습니다.

onVerifyInstDir:
이 콜백은 설치 프로그램이 설치 경로의 유효성을 제어할 수 있게 해줍니다. 이 코드는 사용자가 설치 경로를 변경할 때마다 한 번씩 호출됩니다. 만약 Abort를 호출하면 $INSTDIR로 가는 경로는 유효하지 않다고 간주됩니다.

부. GUIInit:
콜백은 첫 페이지가 로드되기 전에 호출되어 언인스톨러 대화상자가 나타나기 전에 언인스톨러 인터페이스를 조정할 수 있습니다.

un.onInit:
이 콜백은 언인스톨러가 초기화 완료에 가까워질 때 호출됩니다. un.onInit 함수가 Abort를 사용하면 설치 해제 프로그램이 즉시 종료됩니다. 참고: 필요 시 $INSTDIR을 검증하거나 수정할 수 있습니다.

un.onUninstFailed:
이 콜백 기능은 사용자가 삭제 실패 후 "취소" 버튼을 클릭할 때(Abort 명령어나 다른 실패한 명령이 사용된 경우) 호출됩니다.

un.onUninstSuccess:
콜백은 삭제가 성공하기 전에 호출되며, 설치 해제 창을 정당하게 닫습니다(사용자가 SetAutoClose가 false로 설정되어 있다면 "닫기" 후일 수 있습니다).

un.onGUIEnd:
콜백은 설치 취소 창이 닫힌 직후에 호출됩니다. 필요할 때 사용자 인터페이스와 관련된 플러그인을 릴리스하는 데 사용하세요.

un.onRebootFailed:
이 콜백 함수는 재부팅 명령어가 실패할 때 호출됩니다. WriteUninstaller, 플러그인, File, WriteRegBin은 이 콜백 기능에 사용할 수 없습니다.

un.onUserAbort:
이 콜백은 사용자가 "취소" 버튼을 눌렀고 삭제가 실패하지 않았을 때 호출됩니다. 만약 Abort를 호출하면 설치 해제 장치가 종료되지 않습니다.

 집주인| 게시됨 2024. 1. 28. 오후 12:07:23 |
Call은 삭제 섹션에서 함수명이 "un."로 시작하도록 사용해야 합니다.
Usage: Call function_name | [:label_name]


NSIS에는 명명 조건이 있는데, 언인스톨로에서 호출되는 함수는 반드시 "un" 이름에 접두사가 있어야 합니다.

해답은 다음과 같습니다:

참조:

하이퍼링크 로그인이 보입니다.
하이퍼링크 로그인이 보입니다.

 집주인| 게시됨 2024. 1. 28. 오후 3:10:07 |
 집주인| 게시됨 2024. 5. 9. 오전 9:46:16 |
Advanced Installer는 MS Windows 인증 Windows 설치 프로그램을 생성하는 강력한 MSI 설치 패키지 메이커로, 사용자 친화적인 그래픽 사용자 인터페이스와 직관적이고 매우 단순한 인터페이스를 갖추고 있어 훌륭한 Windows 설치 프로그램 작성자입니다.
 집주인| 게시됨 2025. 2. 21. 오후 5:36:44 |
Inno Setup은 Jordan Russell과 Martijn Laan이 개발한 무료 Windows 프로그램 설치 프로그램입니다. Inno Setup은 1997년에 처음 출시되었으며, 오늘날 기능 세트와 안정성 면에서 많은 상업용 설치 업체들과 경쟁하거나 심지어 능가하고 있습니다.

웹사이트:하이퍼링크 로그인이 보입니다.

사례: Ollama Windows 애플리케이션,하이퍼링크 로그인이 보입니다.
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com