2015-05-27 2 views
1

Всего NSIS nube здесь. У меня был скрипт, который работал, и теперь это не так. Он основан на примере представленной на сайте НСИ:NSIS Invalid Command userInfo :: GetAccountType

# This installs two files, app.exe and logo.ico, creates a start menu shortcut, builds an uninstaller, and 
# adds uninstall information to the registry for Add/Remove Programs 

# To get started, put this script into a folder with the two files (app.exe, logo.ico, and license.rtf - 
# You'll have to create these yourself) and run makensis on it 

# If you change the names "app.exe", "logo.ico", or "license.rtf" you should do a search and replace - they 
# show up in a few places. 
# All the other settings can be tweaked by editing the !defines at the top of this script 
!define COMPANYNAME "F_YEAH" 
!define DESCRIPTION "I'm stoked!" 
# These three must be integers 
!define VERSIONMAJOR 1 
!define VERSIONMINOR 1 
!define VERSIONBUILD 1 
# These will be displayed by the "Click here for support information" link in "Add/Remove Programs" 
# It is possible to use "mailto:" links in here to open the email client 
!define HELPURL "http://..." # "Support Information" link 
!define UPDATEURL "http://..." # "Product Updates" link 
!define ABOUTURL "http://..." # "Publisher" link 
# This is the size (in kB) of all the files copied into "Program Files" 
!define INSTALLSIZE 7233 

RequestExecutionLevel admin ;Require admin rights on NT6+ (When UAC is turned on) 

InstallDir "$PROGRAMFILES\${COMPANYNAME}\${APPNAME}" 

# rtf or txt file - remember if it is txt, it must be in the DOS text format (\r\n) 

# This will be in the installer/uninstaller's title bar 
Name "${COMPANYNAME} - ${APPNAME}" 
Icon "C:\Users\dkim\Documents\dog.ico" 
outFile "GetSomeGA.exe" 

!include LogicLib.nsh 

# Just three pages - license agreement, install location, and installation 
page license 
page directory 
Page instfiles 

!macro VerifyUserIsAdmin 
UserInfo::GetName 
pop $0 
${If} $0 != "admin" ;Require admin rights on NT4+ 
     messageBox mb_iconstop "Administrator rights required!" 
     setErrorLevel 740 ;ERROR_ELEVATION_REQUIRED 
     quit 
${EndIf} 
!macroend 

function .onInit 
    setShellVarContext all 
    !insertmacro VerifyUserIsAdmin 
functionEnd 

section "install" 
    # Files for the install directory - to build the installer, these should be in the same directory as the install script (this file) 
    setOutPath $INSTDIR 
    # Files added here should be removed by the uninstaller (see section "uninstall") 
    File /r "C:\Users\dkim\Documents\Projects\MOR\Projects\GAintegration\GA_ConversionOnDemand_0.1" 
    File "C:\Users\dkim\Documents\dog.ico" 
    # Add any other files for the install directory (license files, app data, etc) here 



    # Uninstaller - See function un.onInit and section "uninstall" for configuration 
    writeUninstaller "$INSTDIR\uninstall.exe" 

    # Start Menu 
    createDirectory "$SMPROGRAMS\${COMPANYNAME}" 
    createShortCut "$DESKTOP\pleaseClickMe.lnk" "$INSTDIR\GA_ConversionOnDemand\GA_ConversionOnDemand_run.bat" "" "$INSTDIR\dog.ico" 0 

    # Registry information for add/remove programs 
    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayName" "${COMPANYNAME} - 

${APPNAME} - ${DESCRIPTION}" 
    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "UninstallString" "$\"$INSTDIR 

\uninstall.exe$\"" 
    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "QuietUninstallString" "$ 

\"$INSTDIR\uninstall.exe$\" /S" 
    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "InstallLocation" "$\"$INSTDIR$\"" 
    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayIcon" "$\"$INSTDIR 

\logo.ico$\"" 
    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "Publisher" "$\"${COMPANYNAME}$\"" 
    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "HelpLink" "$\"${HELPURL}$\"" 
    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "URLUpdateInfo" "$\"${UPDATEURL}$ 

\"" 
    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "URLInfoAbout" "$\"${ABOUTURL}$\"" 
    WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "DisplayVersion" "$ 

\"${VERSIONMAJOR}.${VERSIONMINOR}.${VERSIONBUILD}$\"" 
    WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "VersionMajor" ${VERSIONMAJOR} 
    WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "VersionMinor" ${VERSIONMINOR} 
    # There is no option for modifying or repairing the install 
    WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "NoModify" 1 
    WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "NoRepair" 1 
    # Set the INSTALLSIZE constant (!defined at the top of this script) so Add/Remove Programs can accurately report the size 
    WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" "EstimatedSize" ${INSTALLSIZE} 
sectionEnd 

# Uninstaller 

function un.onInit 
    SetShellVarContext all 

    #Verify the uninstaller - last chance to back out 
    MessageBox MB_OKCANCEL "Permanantly remove ${APPNAME}?" IDOK next 
     Abort 
    next: 
# !insertmacro VerifyUserIsAdmin 
functionEnd 

section "uninstall" 

    # Remove Start Menu launcher 

    RMDir /r "$PROGRAMFILES\${COMPANYNAME}" 
    delete "$DESKTOP\click_or_die.lnk" 

    # Always delete uninstaller as the last action 
    delete $INSTDIR\uninstall.exe 


    # Remove uninstaller information from the registry 
    DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME} ${APPNAME}" 
sectionEnd 

Сообщение об ошибке я получаю:

!insertmacro: VerifyUserIsAdmin 
Invalid command: UserInfo::GetName 
Error in macro VerifyUserIsAdmin on macroline 1 
Error in script "C:\Users\dkim\Documents\test3.nsi" on line 55 -- aborting creation process 

Это не позволит мне использовать любую команду с участием USERINFO. Любые идеи о том, что может происходить?

ответ

1

Компилятор не может найти плагин UserInfo или плагин поврежден.

Файл должен быть в %ProgramFiles%\NSIS\Plugins в NSIS v2 и в %ProgramFiles%\NSIS\Plugins\x86-ansi или %ProgramFiles%\NSIS\Plugins\x86-unicode в NSIS v3 (в зависимости от вашего целевого типа).

Этот плагин является частью умолчанию NSIS установки, поэтому я рекомендую вам просто переустановить NSIS на поверх существующей установки ...

+0

Да - спасибо! кажется, я сделал минимальную установку без плагинов. Теперь все хорошо. – Doodereeno66

Смежные вопросы