У меня есть скрипт nsi, который начинается следующим образом:
Name "myprog"<br />
OutFile "myprog.exe"<br />
InstallDir $PROGRAMFILES32\xx<br />
InstallDirRegKey HKLM "Software\yy\xx" "InstallDir"<br />
RequestExecutionLevel admin<br />
AutoCloseWindow true<br />
BrandingText /TRIMCENTER "me"<br />
LoadLanguageFile "${NSISDIR}\Contrib\Language files\German.nlf"<br />
Caption "Updateprogramm"<br />
Он отлично работает на моем компьютере разработчика, но не на производстве (например, у пользователя есть права только на чтение для пути к реестру). Это Win 2003 Server OS. Даже когда раздел реестра существует, программа пытается установить его в $ PROGRAMFILES32 \ xx.