几个小时前,我的部署项目正常运行。但是突然间,在我的nsDialogPage
项目中添加了第二个之后,它就不再工作了。即使是旧的保存代码也只有一个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" "@DERBY_USER@ = " $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" "@DERBY_USER@ = " $0
${NSD_GetText} $UserText $0
!insertmacro _ReplaceInFile2 "$INSTDIR\$Version\conf\database.properties" "@DERBY_USER@" $0
FunctionEnd
这段代码一直运行良好。我不知道会发生什么。
目前,安装程序在复制文件后停止,并且不显示 nsDialog 表单。通知 :
- 如果我评论文件复制页面,
nsDialog
页面正常显示 - 如果我制作第
nsDialog
一个,然后是复制页面,然后是另一个nsDialog
(只是为了测试,它在我的应用程序上没用),第一个nsDialog
表单会出现,但不会出现第二个表单。
我以为它来自,${NSD_CreateTExt}
所以我尝试了仅使用标签(不是文本)的相同操作,结果是相同的。
我的文件副本已正确完成(已记录)。
在我不知道是什么之前,它正在工作。
我重新启动了我的机器,没有任何结果。
nsDialog
在另一个类似的项目上,设置表单上会显示与 .tmp 文件问题相关的一种“.tmp 文件问题” 。线索 ?
任何的建议都受欢迎。谢谢。