문제

개발 중이는 게임을 위해 매우 첫 번째 Windows Installer를 개발할 준비를하고 있습니다. NSIS가 추천했지만 나의 요구 사항은 기본적이며 정확히 필요한 것을 알아낼 수 없습니다.

"프로그램 파일"디렉토리에 파일 디렉토리 (필요한 경우 권한 요청), 시작 메뉴에서 간단한 바로 가기를 만들고 추가 / 제거에 제거 프로그램을 등록 할 수있는 짧은 NSIS 스크립트를 원합니다. 프로그램 제어판.

제거 프로그램은 디렉토리를 삭제하고 파일이 사용 중이면 재부팅을 촉구하는 바로 가기를 제거합니다.

마지막으로 이전 파일을 모두 제거하고 이전 파일을 사용 중이면 사용자를 재부팅하라는 메시지를 묻는 새 파일을 모두 제거하여 업그레이드를 지원하고 싶습니다.

나는 비트와 조각을하는 샘플 NSH 스크립트를 온라인으로 본 것을 보았습니다. 나는 나 자신을 함께 끌려려고 노력하고 있으며, 수백 줄의 길이가 될 것처럼 보입니다. 내 코드가 잘못된 것처럼 냄새가납니다.

는 수백 줄의 NSH가되어야하는 프로그램이 정말로 묘사하는 프로그램입니다. 확실히 더 쉬운 방법이 있습니까?

도움이 되었습니까?

해결책

Eclipse 다운로드 다운로드 Eclipsensis 플러그인 Eclipse에 있습니다.NSIS 파일 (코드 완성 및 모든 것)을위한 완벽한 기능을 갖춘 편집기를 제공 할뿐만 아니라 몇 가지 질문 (응용 프로그램 제목, 아이콘)에 답변하여 스크립트 스크립트를 만드는 마법사가 있습니다.사용하려면 ...).

다른 팁

이것은 꽤 가깝게 (나는이 스크립트를 테스트하지 않았다) 공백을 채우고 특정 문자열을 대체해야합니다 ...

!define Name "Foo"
Name "${Name}"
Outfile "${Name} setup.exe"
RequestExecutionLevel admin ;Require admin rights on NT6+ (When UAC is turned on)
InstallDir "$ProgramFiles\${Name}"

!include LogicLib.nsh
!include MUI.nsh

Function .onInit
SetShellVarContext all
UserInfo::GetAccountType
pop $0
${If} $0 != "admin" ;Require admin rights on NT4+
    MessageBox mb_iconstop "Administrator rights required!"
    SetErrorLevel 740 ;ERROR_ELEVATION_REQUIRED
    Quit
${EndIf}
FunctionEnd

!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"


Section
SetOutPath "$INSTDIR"
WriteUninstaller "$INSTDIR\Uninstall.exe"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Foo By Bar Inc."   "DisplayName" "${Name}"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Foo By Bar Inc."   "UninstallString" "$INSTDIR\Uninstall.exe"
;TODO: Install your files with the File command
CreateShortCut "$SMPROGRAMS\${Name}.lnk" "$INSTDIR\Foo.exe"
SectionEnd

Section "Uninstall"
;TODO: Delete your files
Delete "$SMPROGRAMS\${Name}.lnk"
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Foo By Bar Inc."
Delete "$INSTDIR\Uninstall.exe"
RMDir "$INSTDIR"
SectionEnd
.

NSIS 용 훌륭한 마법사는 HM NIS EDIT이며, 첫 번째 설치 프로그램을 안내 할 수있는 무엇이 믿는 것을 포함하여 첫 번째 설치 프로그램을 안내 할 수 있습니다.

"Nofollow"> http://hmne.sourceforge.net/

NSIS에서 업데이터를 제공하려면 몇 가지 사항을 권장합니다.

  1. 응용 프로그램이 서버의 업데이트를 확인하는 방법을 만듭니다. 일반적으로 첫 번째로드
  2. 새 설치 프로그램을 다운로드하고 (응용 프로그램에서 실행할 수 있지만, 누구도 웹 사이트에서도 가져올 수 있습니다).
  3. 이전 프로그램이 실행 중이면 닫아야합니다. NSIS에는 프로세스를 찾아서 죽일 수있는 플러그인이 있습니다. 이것은 슈퍼 '좋은'이 아니지만 필요할 수 있습니다.
  4. 이 프로세스 플러그인 추천

    DLL이 사용 중이면 사용 중이라면 삭제할 수 없습니다. 그러나 NSI에서는 이름을 바꿀 수 있으며 다음 재부팅에 삭제를 표시합니다.

    Delete /REBOOTOK file.txt
    
    . 그런 다음 새 DLL을 폴더에 복사합니다.

    NSIS의 경우 플러그인, 샘플 및 큰 도움말이 있지만 언어를 배우는 것은 약간의 시간이 걸립니다. INNO는 훨씬 쉽게 배울 수 있지만 좌석이 많은 사람들을 맞이할 때 사용자 정의가 더 어려워집니다. 그러나 나는 두 가지가 전반적으로 비교할 수 있고 잘 작동해야한다고 말할 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top