NSIS stille installasjon banen altoverskyggende

stemmer
1

Jeg kjører mitt program installasjons ferdig med NSIS men / D-alternativet synes ikke fungerer (eller bedre styres innsiden). Via kommandolinjen I utløse:

installer.exe /S /D=C:\Users\Public\installDir

NSIS kode er:

InstallDir C:\Users\Public\${VERSIONSTR}


Function xxxx
 ${If} $MultiUser.InstallMode == AllUsers      
 StrCpy $INSTDIR C:\Users\Public\Dir1
 ${EndIf}
 IfSilent 0 +20
   StrCpy $INSTDIR C:\Userdata\Dir2
FunctionEnd

Den brukte installasjonsmappen er C: \ Users \ Public \ dir2. Selv om jeg kommentere IfSilent blokkere installtion mappen vil være C: \ Users \ Public \ dir1, men aldri en gått via kommandolinjen. Hva er galt i mitt script?

Publisert på 30/05/2013 klokken 06:19
kilden bruker
På andre språk...                            


1 svar

stemmer
2
!include LogicLib.nsh
;InstallDir ; Do not use InstallDir at all so we can detect empty $InstDir
!define DEFDIR_MACHINE "$programfiles\foo"
!define DEFDIR_PERUSER "$localappdata\bar"
Function .onInit
${If} $InstDir == "" ; /D not used
    ${If} $MultiUser.InstallMode == "AllUsers"
        StrCpy $InstDir "${DEFDIR_MACHINE}"
    ${Else}
        StrCpy $InstDir "${DEFDIR_PERUSER}"
    ${EndIf}
    ${If} ${Silent}
        StrCpy $InstDir "c:\CrazySilentOverride"
    ${EndIf}
${EndIf}
FunctionEnd
Svarte 31/05/2013 kl. 20:11
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more