Sample script:
code:
(--helpers.nsh--)
!define CreateSymbolicLinkFolder "!insertmacro CreateSymbolicLinkFolder"
!ifdef CreateSymbolicLinkFolder_
Function CreateSymbolicLinkFolder_
Exch $0 ; _TARGET
Exch 1
Exch $1 ; _JUNCTION
IfFileExists "$0" 0 done
${GetParent} "$1" $R0
CreateDirectory "$R0"
System::Call "kernel32::CreateSymbolicLinkW(w `$1`, w `$0`, i 1) i .s"
done:
Pop $R0
Pop $1
Pop $0
FunctionEnd
!endif
!macro CreateSymbolicLinkFolder _JUNCTION _TARGET
!define CreateSymbolicLinkFolder_
Push "${_JUNCTION}"
Push "${_TARGET}"
Call CreateSymbolicLinkFolder_
!macroend
(--sample.nsi--)
!include "helpers.nsh"
...
${CreateSymbolicLinkFolder} "$APPDATA\SOMEPATH" "$EXEDIR\Data"
Nsis error:
Error: resolving install function "DeleteLinkOrFolder_" in function "Clean"
Note: uninstall functions must begin with "un.", and install functions must not
How can i do fix the this?
In this code:
code:
!define CreateSymbolicLinkFolder "!insertmacro CreateSymbolicLinkFolder"
!define CreateSymbolicLinkFolder_
!ifdef CreateSymbolicLinkFolder_
Function CreateSymbolicLinkFolder_
Exch $0 ; _TARGET
Exch 1
Exch $1 ; _JUNCTION
IfFileExists "$0" 0 done
${GetParent} "$1" $R0
CreateDirectory "$R0"
System::Call "kernel32::CreateSymbolicLinkW(w `$1`, w `$0`, i 1) i .s"
done:
Pop $R0
Pop $1
Pop $0
FunctionEnd
!endif
!macro CreateSymbolicLinkFolder _JUNCTION _TARGET
Push "${_JUNCTION}"
Push "${_TARGET}"
Call CreateSymbolicLinkFolder_
!macroend
if i modify the script like this and if i don't need the macro "CreateSymbolicLinkFolder", nsis give me a warning:
install function "CreateSymbolicLinkFolder_" not referenced - zeroing code