...
!include "nsDialogs.nsh"
!include "MUI2.nsh"
!include "LogicLib.nsh"
!include "XML.nsh"
  !insertmacro "UpdateXml"
...
!insertmacro MUI_UNPAGE_LICENSE "${NSISDIR}\Docs\Modern UI\License.txt"
UninstPage custom un.PageReinstall
!insertmacro MUI_UNPAGE_CONFIRM
...

Function un.PageReinstall
...
${UpdateXml} "http://127.0.0.1/123.xml" "/XML/A" $321 ; line 232
...
FunctionEnd


NSIS日志:


!insertmacro:UpdateXmlCall调用必须与函数名称一起使用
以“ un”开头。在卸载部分。用法:致电
function_name | [:label_name]宏UpdateXmlCall中的错误
macroline 5第232行的脚本“ G:\ Basic.nsi”中的错误-正在终止
创作过程


怎么了?

最佳答案

卸载程序使用的功能必须带有un.前缀,宏也必须带有前缀。

因此,如果您正在使用宏,并且希望能够同时在安装程序和卸载程序中使用它,则必须将其插入2次(一个带un.前缀,另一个不带!insertmacro "UpdateXml"前缀)。

在脚本开始时用!insertmacro un.UpdateXml添加或替换un.UpdateXml应该可以解决该问题(假设xml.nsh宏在中定义)。

08-19 11:19