0
我有一個NSIS腳本(從嚮導生成的)執行卸載這樣的:SIS卸載程序沒有從控制面板進入
!define PRODUCT_DIR_REGKEY "SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\MyProgram.exe"
!define PRODUCT_UNINST_KEY "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
...
Section -Post
WriteUninstaller "$INSTDIR\uninst.exe"
WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\MyProgram.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninst.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\MyProgram.exe"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
SectionEnd
...在腳本結束時,我有:
DeleteRegKey HKLM "${PRODUCT_UNINST_KEY}"
DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
SetAutoClose true
問題是,啓動卸載程序後,控制面板 - 程序表中的MyProgram條目仍然存在。 有什麼問題?
在此先感謝
DeleteRegKey指令位於卸載程序部分?請發佈完整的示例腳本來重現問題,並請告訴我們您正在使用的Windows版本。 – Anders
是的,DeleteRegKey在Section Uninstall中,在DeleteRegKey行之前只有文件和目錄刪除。我使用的是Windows 8.1,但問題也出現在Win7和Win10中 –
像RequestExectionLevel這樣的事情可能會影響事物,因此當您不發佈我實際可以編譯的完整腳本時,它非常煩人! – Anders