Directory 浏览安装目录后的NSIS目录页${产品名称}”;在选择后添加

Directory 浏览安装目录后的NSIS目录页${产品名称}”;在选择后添加,directory,installation,nsis,Directory,Installation,Nsis,我有一个带有目录页面的简单NSIS脚本,用户可以在其中选择一个目录来安装应用程序。请参见下面的示例,如果应用程序已安装,则它将从注册表或www root或“program files\publisher\product name”获取值 问题是,当我单击目录页面上的浏览并选择特定目录(例如:c:\test)时,当我关闭浏览对话框时,定义产品名称会自动添加到路径:c:\test\Invoice Management Workflow。如何避免自动添加产品名称“ 这与InstallDir说明有关,引

我有一个带有目录页面的简单NSIS脚本,用户可以在其中选择一个目录来安装应用程序。请参见下面的示例,如果应用程序已安装,则它将从注册表或www root或“program files\publisher\product name”获取值

问题是,当我单击目录页面上的浏览并选择特定目录(例如:c:\test)时,当我关闭浏览对话框时,定义产品名称会自动添加到路径:c:\test\Invoice Management Workflow。如何避免自动添加产品名称“


这与InstallDir说明有关,引自手册:

请注意,此字符串的部分 如果出现以下情况,将使用最后一个\的后面 用户选择“浏览”,可能是 追加回位于的字符串 安装时间(要禁用此功能,请结束 带有\(这将需要 要包含的整个参数 带引号)


所以你可能想要
Installdir“$programfiles\${PRODUCT\u PUBLISHER}\${PRODUCT\u NAME}\”

哇,我彻底搜索了文档和web,但我找不到这个极其晦涩的“功能”。Thanx!
!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