몇 시간 전에 배포 프로젝트가 올바르게 실행되었습니다. 하지만 갑자기, 내 프로젝트에 두 번째 nsDialogPage
을 추가 한 후 더 이상 작동하지 않습니다. 심지어 하나만 사용하는 이전 저장된 코드 nsDialogPage
.임시 파일 액세스 문제로 인해 NSIS nsDialogPage가 더 이상 표시되지 않습니까?
이것은 내 코드의 일부입니다.
!include LogicLib.nsh
!include nsDialogs.nsh
!include StrRep.nsh
!include ReplaceInFile.nsh
!include FileFunc.nsh
!include TextFunc.nsh
!insertmacro GetTime
!include ZipDLL.nsh
; The name of the installer
Name "Packaging setup"
; The file to write
OutFile "Packaging setup v1.2.3.exe"
XPStyle on
Var Dialog
Var Label
Var UserText
; The default installation directory
InstallDir "C:\temp\setup"
; Request application privileges for Windows Vista
RequestExecutionLevel admin
; Pages
Page components
Page directory
;Page custom nsDialogsPage nsDialogsPageLeave
Page instfiles
Page custom nsDialogsPage nsDialogsPageLeave
UninstPage uninstConfirm
UninstPage instfiles
Section "Copy files"
; Set output path to the installation directory.
SetOutPath $INSTDIR
; Copy lot of files
File "D:\Temp\Sources\parametrage.txt"
SectionEnd
Function nsDialogsPage
nsDialogs::Create 1018
Pop $Dialog
${If} $Dialog == error
MessageBox MB_OK "Oops something crashed"
Abort
${EndIf}
;UserName
${NSD_CreateLabel} 0 0 18% 10u "UserName : "
Pop $Label
${ConfigRead} "$INSTDIR\parametrage.txt" "@[email protected] = " $UserText
${NSD_CreateTExt} 50u 0 50% 12u $UserText
Pop $UserText
nsDialogs::Show
FunctionEnd
Function nsDialogsPageLeave
!macro _ReplaceInFile2 SOURCE_FILE SEARCH_TEXT REPLACEMENT
Push "${SOURCE_FILE}"
Push "${SEARCH_TEXT}"
Push "${REPLACEMENT}"
Call RIF
!macroend
;${ConfigRead} "$INSTDIR\PARAMETRAGE.txt" "@[email protected] = " $0
${NSD_GetText} $UserText $0
!insertmacro _ReplaceInFile2 "$INSTDIR\$Version\conf\database.properties" "@[email protected]" $0
FunctionEnd
이 코드는 잠시 후 완벽하게 작동합니다. 나는 어떻게되는지 모른다.
현재 파일 복사가 끝나면 설치가 중단되고 nsDialog 양식이 표시되지 않습니다. 는주의 사항 :
- 내가 파일을 언급하는 경우 페이지 복사
nsDialog
페이지는 일반적으로 - 나타납니다 내가 다음
nsDialog
첫째, 다음 복사 페이지 다시nsDialog
를 한 경우 (단지 테스트, 그것은 쓸모가 내 응용 프로그램에서) 첫 번째nsDialog
양식이 나타나지만 두 번째 양식은 나타나지 않습니다.
${NSD_CreateTExt}
에서 온 것 같아서 레이블 (텍스트가 아님)만으로 동일한 작업을 시도했지만 그 결과는 같습니다.
내 파일의 사본이 올바르게 기록됩니다 (기록됩니다).
나는 무엇을 모르기 전에 일하고있었습니다.
아무 결과없이 내 컴퓨터를 다시 시작했습니다.
다른 프로젝트에서 마찬가지로 nsDialog
과 관련된 종류의 ".tmp 파일 문제"가 설치 양식에 표시됩니다. 실마리?
모든 조언을 환영합니다. 감사합니다. .
좋은 아이디어. 그러나 코드가있는 워크 스테이션은 인터넷에 연결되어 있지 않으므로 (업데이트가 없음), McAfee 일지라도 어떻게 작동했는지 설명 할 수 있습니까? – PetersLast
최신 소식은 최신 버전이 아니라 마지막 버전 중 하나를 의미합니다. 촬영 한 후 AV를 사용하지 않도록 설정하십시오. 확인할 수있을만큼 단순해야합니다. – kichik