在制作安装包的时候,我们经常会遇到,软件区分x64/x86的版本,这时候我们在打包软件的时候就要分别打包两个压缩包,这样很影体验,并且有些小白用户根本就不知道自己系统是多少位系统。止于此,这里给大家分享一个自动判断系统版本号,在根据系统自动执行安装目录。

nsis

直接贴代码:

  1. !define PRODUCT_NAME "test"
  2. !define PRODUCT_VERSION "1.0.0.0"
  3. !define PRODUCT_DIR_REGKEY "SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\${PRODUCT_NAME}.exe"
  4. !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
  5. !define PRODUCT_UNINST_ROOT_KEY "HKLM"
  6. # 需要引入的nsh脚本
  7. !include "x64.nsh" /*判断系统*/
  8. Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
  9. OutFile "${PRODUCT_NAME}_${PRODUCT_VERSION}_setup.exe"
  10. InstallDirRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString"
  11. # 这里不用定义下面的“InstallDir”
  12. # InstallDir "$PROGRAMFILES\${PRODUCT_NAME}"
  13. Section "Test" Test
  14.     SetOutPath "$INSTDIR"
  15. SectionEnd
  16. Function .onInit
  17.     # 安装目录设置
  18.     ${If} ${RunningX64} /*判断系统*/
  19.     StrCpy $INSTDIR "$PROGRAMFILES64\${PRODUCT_NAME}"
  20.     ${else}
  21.     StrCpy $INSTDIR "$PROGRAMFILES\${PRODUCT_NAME}"
  22.     ${EndIf}
  23. FunctionEnd
正文到此结束

留言

0条评论

LEAVE A REPLY

  • face face face face face face face face face face face face face face face face face face face face face face face face face