Destination文件夹中的路径将附加到旧路径,而不是使用NSIS显示新路径

问题描述 投票:0回答:1

当我安装时,默认情况下它在目标文件夹中显示路径“C:\ Program Files(x86)\ DllTesting \”(这是预期的)。

enter image description here

然后我尝试将路径更改为“C:\ Program Files \ AppTest”

但是从浏览一次我选择了上面的路径并单击“确定”,它显示“C:\ Program Files \ AppTest \ DllTesting”而不是“C:\ Program Files \ AppTest”

enter image description here当我从下面的路径中删除“DllTesting”时,它正确地显示新路径而不附加到旧路径。

InstallDir $ PROGRAMFILES \ DllTesting

但我不能从上面的路径中删除“DllTesting”,因为默认情况下我应该显示路径“C:\ Program Files(x86)\ DllTesting \”

以下是我的代码片段:

; DllTesting.nsi
;
;--------------------------------
!include LogicLib.nsh

Name "DllTesting"
OutFile "DllTesting.exe"

InstallDir $PROGRAMFILES\DllTesting

InstallDirRegKey HKLM "Software\NSIS_DllTesting" "Install_Dir"

RequestExecutionLevel admin

; Pages

Page components
Page directory
Page instfiles

UninstPage uninstConfirm
UninstPage instfiles

;--------------------------------

; The stuff to install
Section "DllTesting (required)"

  SetOutPath $INSTDIR

  ; Write the installation path into the registry
  WriteRegStr HKLM SOFTWARE\NSIS_DllTesting "Install_Dir" "$INSTDIR"

  ; Write the uninstall keys for Windows
  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\DllTesting" "DisplayName" "NSIS DllTesting"
  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\DllTesting" "UninstallString" '"$INSTDIR\uninstall.exe"'
  WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\DllTesting" "NoModify" 1
  WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\DllTesting" "NoRepair" 1
  WriteUninstaller "uninstall.exe"

SectionEnd

请帮我如何更改浏览路径而不附加到上一个路径?

nsis
1个回答
0
投票

阅读文档中的InstallDir,您会发现:

请注意,如果用户选择“浏览”,则将使用此字符串后面的部分,并且可以在安装时将其附加到字符串上(要禁用此功能,请使用\结束目录(这将需要整个参数用引号括起来)。

尝试改变

InstallDir $PROGRAMFILES\DllTesting

InstallDir "$PROGRAMFILES\DllTesting\"
© www.soinside.com 2019 - 2024. All rights reserved.