2010-07-15 1 views
1

У меня есть простой NSIS-скрипт со страницей каталога, где пользователь может выбрать каталог для установки приложения. См. Пример ниже, если приложение уже установлено, оно принимает значение из реестра, а также от имени корневого каталога www или «файлы программы \ издателя \ имя продукта».

Проблема заключается в том, что когда я нажимаю кнопку «Поиск» на странице каталога и выбираю конкретный каталог (например, c: \ test), когда я закрываю диалог обзора, автоматически указывается путь PRODUCT_NAME к пути: c: \ test \ Рабочий процесс управления счетами. Как я могу избежать добавляемые автоматически "название продукта

!define PRODUCT_NAME "Invoice Management Workflow" 

!insertmacro MUI_DEFINES 
!insertmacro MUI_PAGE_WELCOME 
Page directory DirPre 
!insertmacro MUI_PAGE_INSTFILES 
!insertmacro MUI_PAGE_FINISH 
!insertmacro MUI_UNPAGE_INSTFILES 

Function DirPre 
    ; set the INSTDIR to 
    ReadRegStr $0 HKLM "Software\${PRODUCT_PUBLISHER}\${PRODUCT_NAME}" "InstallDirectory" 
    ${If} $0 != "" 
     StrCpy $INSTDIR $0 
     Abort 
    ${Else} 
     ; get the install dir from reg 
     ReadRegStr $0 HKLM "SOFTWARE\Microsoft\InetStp" "PathWWWRoot" 
     ${If} $0 != "" 
      StrCpy $INSTDIR $0 
     ${EndIf} 
    ${EndIf} 
FunctionEnd 

ответ

6

Это связано с инструкцией InstallDir, цитата из инструкции:

Обратите внимание, что часть этой строки следующий последний \ будет использоваться, если пользователь выбирает «просмотр» и может быть добавлен обратно к строке на времени установки (чтобы отключить это, завершите каталог с \ (который потребует весь включенный параметр с кавычками).

Таким образом, вы, вероятно, хотите Installdir "$programfiles\${PRODUCT_PUBLISHER}\${PRODUCT_NAME}\"

+0

Ого, я искал документацию весьма тщательно, и в Интернете, но я не мог найти это крайне неясное «особенность». Thanx! – Rogier

+0

Спасибо! Это решило мою проблему – osamu

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

  • Нет связанных вопросов^_^