IfFileExists 命令 运行 3 个命令行
IfFileExists command run 3 command lines
如何 IfFileExists
命令的结果 运行 三行而不是第一行。
在下面的代码中,IfFileExists
的结果是TemWSConfig
,必须执行NaoTemWSConfig
命令的3行。
目前 TemWSConfig
之后的第 2 行和第 3 行,总是 运行
IfFileExists "$INSTDIR\IntegradorWS.exe.Config" TemWSConfig NaoTemWSConfig
TemWSConfig:
File "..\IntegradorWS\bin\x86\Release\AppInstalado.config"
Rename "$INSTDIR\IntegradorWS.exe.Config" "$INSTDIR\Antigo_IntegradorWS.exe.Config"
Rename "$INSTDIR\AppInstalado.config" "$INSTDIR\IntegradorWS.exe.Config"
NaoTemWSConfig:
File "..\IntegradorWS\bin\x86\Release\IntegradorWS.exe.Config"
NSIS 不会像这样跳过,你可以通过切换出有问题的指令来验证:
Section
; Fake the IntegradorWS.exe.Config file for this example:
StrCpy $INSTDIR $temp
File "/oname=$INSTDIR\IntegradorWS.exe.Config" "${__FILE__}"
IfFileExists "$INSTDIR\IntegradorWS.exe.Config" TemWSConfig NaoTemWSConfig
TemWSConfig:
DetailPrint "TemWSConfig:1"
DetailPrint "TemWSConfig:2"
DetailPrint "TemWSConfig:3"
NaoTemWSConfig:
DetailPrint "NaoTemWSConfig:1"
; Clean up
Delete "$temp\IntegradorWS.exe.Config"
SectionEnd
这意味着问题一定出在 File
指令上。确保您已调用 SetOutPath
以便它知道要提取的位置。如果您更改了 SetOverwrite
等
,则可以跳过文件提取
如何 IfFileExists
命令的结果 运行 三行而不是第一行。
在下面的代码中,IfFileExists
的结果是TemWSConfig
,必须执行NaoTemWSConfig
命令的3行。
目前 TemWSConfig
之后的第 2 行和第 3 行,总是 运行
IfFileExists "$INSTDIR\IntegradorWS.exe.Config" TemWSConfig NaoTemWSConfig
TemWSConfig:
File "..\IntegradorWS\bin\x86\Release\AppInstalado.config"
Rename "$INSTDIR\IntegradorWS.exe.Config" "$INSTDIR\Antigo_IntegradorWS.exe.Config"
Rename "$INSTDIR\AppInstalado.config" "$INSTDIR\IntegradorWS.exe.Config"
NaoTemWSConfig:
File "..\IntegradorWS\bin\x86\Release\IntegradorWS.exe.Config"
NSIS 不会像这样跳过,你可以通过切换出有问题的指令来验证:
Section
; Fake the IntegradorWS.exe.Config file for this example:
StrCpy $INSTDIR $temp
File "/oname=$INSTDIR\IntegradorWS.exe.Config" "${__FILE__}"
IfFileExists "$INSTDIR\IntegradorWS.exe.Config" TemWSConfig NaoTemWSConfig
TemWSConfig:
DetailPrint "TemWSConfig:1"
DetailPrint "TemWSConfig:2"
DetailPrint "TemWSConfig:3"
NaoTemWSConfig:
DetailPrint "NaoTemWSConfig:1"
; Clean up
Delete "$temp\IntegradorWS.exe.Config"
SectionEnd
这意味着问题一定出在 File
指令上。确保您已调用 SetOutPath
以便它知道要提取的位置。如果您更改了 SetOverwrite
等