我创建了一个窗口应用程序,我需要为其创建setup.For创建设置我正在使用NSIS。我编写了脚本来创建安装文件,我需要将此安装文件链接到添加/删除程序。要添加添加/删除程序的链接,我使用以下代码:
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\app" "DisplayName" "Name"
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\app" "AppName" '"$INSTDIR\UninstallApp.exe"'
此代码在注册表 Software \ Microsoft \ Windows \ CurrentVersion \ Uninstall \ app 中成功添加详细信息 但无法添加添加/删除链接。
答案 0 :(得分:1)
您是否尝试过具有ADMIN权限的HKLM?即使用管理权限启动安装程序。
代码剪切应该如下所示
!include "MUI2.nsh"
!define PRODUCT_NAME "MyProduct"
!define PRODUCT_UNINST_REGKEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_DEF_LOC "$PROGRAMFILES\${PRODUCT_NAME}"
!define PRODUCT_UNINSTALLER "MyUninstaller.exe"
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"
Name "${PRODUCT_NAME} Test"
OutFile "${PRODUCT_NAME}_Setup.exe"
InstallDir "${PRODUCT_DEF_LOC}"
Section "Core section" SecCore
SetOutPath $INSTDIR
WriteRegExpandStr HKLM "${PRODUCT_UNINST_REGKEY}" "UninstallString" "$INSTDIR\${PRODUCT_UNINSTALLER}"
WriteRegStr HKLM "${PRODUCT_UNINST_REGKEY}" "DisplayName" "Name"
WriteUninstaller "$INSTDIR\${PRODUCT_UNINSTALLER}"
SectionEnd
Section "Uninstall"
Delete "$INSTDIR\${PRODUCT_UNINSTALLER}"
RMDir $INSTDIR
DeleteRegKey HKLM "${PRODUCT_UNINST_REGKEY}"
SectionEnd
答案 1 :(得分:0)
根据the official documentation,hive HKCU仅支持当前用户的NT4 / 2000 / XP。
尝试使用HKLM。
答案 2 :(得分:0)
有两个必需的卸载字符串条目,它们是DisplayName
和UninstallString
。
URLInfoAbout
等其他条目是可选的,但必须存在两个必填项才能首先显示该项目。