4
...
!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 Call は、"un" で始まる関数名で使用する必要があります。アンインストールセクションで。使用法: function_name | を呼び出します。[:label_name] マクロライン 5 のマクロ UpdateXmlCall のエラー 232 行目のスクリプト "G:\Basic.nsi" のエラー -- 作成プロセスを中止します

どうしたの?

4

2 に答える 2

10

アンインストーラーが使用する関数には接頭辞を付ける必要がun.あり、マクロも接頭辞として付ける必要があります。

したがって、マクロを使用していて、インストーラーとアンインストーラーの両方からマクロを使用できるようにする場合は、マクロを2回挿入する必要があります(プレフィックス付きとun.プレフィックスなし)。

スクリプトの先頭で!insertmacro "UpdateXml"byを追加または置換すると、問題が修正されます(マクロがで定義されている場合)。!insertmacro un.UpdateXmlun.UpdateXmlxml.nsh

于 2012-10-11T10:00:30.217 に答える