В процессе компиляции файл можно создать командой !appendfile
пример
Код:
!define MYLOCKFILE "CreateFileAtCompileTime.txt"
!appendfile "${MYLOCKFILE}" ""
Name "CreateFileAtCompileTime"
ShowInstDetails show
AutoCloseWindow false
RequestExecutionLevel user
Page instfiles
Section
SectionEnd
Function .onInit
IfFileExists "$EXEDIR\${MYLOCKFILE}" +3 0
MessageBox MB_OK|MB_ICONSTOP "Верни мой файл! $\n $EXEDIR${MYLOCKFILE}"
Quit
FunctionEnd
ЗЫ. В шапке есть русскоязычный справочник - он несколько устарел и неструктурирован, но как базовый подойдёт.
Язык NSIS по объёму небольшой, за пару вечеров основы усвоить можно.