NSIS を使用してアプリケーションのセットアップを作成していますが、既にインストールされているかどうかを確認する必要があります。
Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
OutFile "MyAppInstaller.exe"
InstallDir "$PROGRAMFILES\MyApp"
InstallDirRegKey HKLM "${PRODUCT_DIR_REGKEY}" ""
ShowInstDetails show
ShowUnInstDetails show
Function .onInit
; Check to see if already installed
ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME} ${PRODUCT_VERSION}" "UninstallString"
IfFileExists $R0 +1 NotInstalled
Messagebox MB_ICONQUESTION|MB_YESNO "MyApp 1.0 is already installed.Do you want to uninstall old version" IDNO Quit
Exec $R0
Quit:
Quit
NotInstalled:
!insertmacro MUI_LANGDLL_DISPLAY
FunctionEnd ...
しかし、何も起こらず、常にインストールを続行し、インストールされた古いバージョンを検出しませんでした。私は NSIS スクリプトについてよく知らないので、助けていただければ幸いです。