0

几个小时前,我的部署项目正常运行。但是突然间,在我的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 文件问题” 。线索 ?

任何的建议都受欢迎。谢谢。

4

1 回答 1

0

我已经看到 McAfee 使用最高安全设置导致此问题。他们的一项保护措施是防止从临时目录执行文件。

它并不完全适合您的问题,因为有时它确实对您有用,但值得一试。

于 2013-07-17T14:52:01.370 回答