【问题标题】:Trying to change the INSTALLDIR value to $APPDATA, but won't work尝试将 INSTALLDIR 值更改为 $APPDATA,但不起作用
【发布时间】:2017-12-12 18:03:59
【问题描述】:

我正在尝试制作一个安装程序以将一些纹理包和内容提取到 AppData 文件夹中,但不断更改为程序文件。

############################################################################################
!define APP_NAME "Optifine+"
!define COMP_NAME "SquirrelKiev"
!define WEB_SITE "https://www.lennyfaces.net/"
!define VERSION "01.02.00.00"
!define COPYRIGHT ""
!define DESCRIPTION "An installer for Optifine and other stuff that I use."
!define LICENSE_TXT "C:\Users\User\Desktop\lisense.txt"
!define INSTALLER_NAME "C:\Users\User\Desktop\Enon\Junk\Modz\test\Optifine.exe"
!define INSTALL_TYPE "SetShellVarContext current"
!define REG_ROOT "HKCU"
!define UNINSTALL_PATH "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_NAME}"

######################################################################

VIProductVersion  "${VERSION}"
VIAddVersionKey "ProductName"  "${APP_NAME}"
VIAddVersionKey "CompanyName"  "${COMP_NAME}"
VIAddVersionKey "LegalCopyright"  "${COPYRIGHT}"
VIAddVersionKey "FileDescription"  "${DESCRIPTION}"
VIAddVersionKey "FileVersion"  "${VERSION}"

######################################################################

SetCompressor LZMA
Name "${APP_NAME}"
Caption "${APP_NAME}"
OutFile "${INSTALLER_NAME}"
BrandingText "${APP_NAME}"
XPStyle on
InstallDirRegKey "${REG_ROOT}" "${UNINSTALL_PATH}" "UninstallString"
InstallDir "$APPDATA\.minecraft"

######################################################################

!include "MUI.nsh"

!define MUI_ABORTWARNING
!define MUI_UNABORTWARNING

!insertmacro MUI_PAGE_WELCOME

!ifdef LICENSE_TXT
!insertmacro MUI_PAGE_LICENSE "${LICENSE_TXT}"
!endif

!insertmacro MUI_PAGE_DIRECTORY

!insertmacro MUI_PAGE_INSTFILES

!insertmacro MUI_PAGE_FINISH

!insertmacro MUI_UNPAGE_CONFIRM

!insertmacro MUI_UNPAGE_INSTFILES

!insertmacro MUI_UNPAGE_FINISH

!insertmacro MUI_LANGUAGE "English"

######################################################################

Section -MainProgram
${INSTALL_TYPE}
SetOverwrite ifnewer
SetOutPath "$INSTDIR"
File "C:\Users\User\Desktop\MCInstaller\launcher_profiles.json"
File "C:\Users\User\Desktop\MCInstaller\options.txt"
File "C:\Users\User\Desktop\MCInstaller\optionsshaders.txt"
SetOutPath "$INSTDIR\versions\1.12.2-OptiFine_HD_U_C7"
File "C:\Users\User\Desktop\MCInstaller\versions\1.12.2-OptiFine_HD_U_C7\1.12.2-OptiFine_HD_U_C7.jar"
File "C:\Users\User\Desktop\MCInstaller\versions\1.12.2-OptiFine_HD_U_C7\1.12.2-OptiFine_HD_U_C7.json"
SetOutPath "$INSTDIR\versions\1.12.2"
File "C:\Users\User\Desktop\MCInstaller\versions\1.12.2\1.12.2.jar"
File "C:\Users\User\Desktop\MCInstaller\versions\1.12.2\1.12.2.json"
SetOutPath "$INSTDIR\shaderpacks"
File "C:\Users\User\Desktop\MCInstaller\shaderpacks\Acid Shaders r6.zip"
File "C:\Users\User\Desktop\MCInstaller\shaderpacks\Animal Crossing Shaders r6.zip"
File "C:\Users\User\Desktop\MCInstaller\shaderpacks\Sildurs Enhanced Default [redone] v1.01.zip"
File "C:\Users\User\Desktop\MCInstaller\shaderpacks\Sildurs Vibrant Shaders v1.166 Extreme-Volumetric Lighting.zip"
File "C:\Users\User\Desktop\MCInstaller\shaderpacks\Sildurs Vibrant Shaders v1.166 Extreme.zip"
File "C:\Users\User\Desktop\MCInstaller\shaderpacks\Sildurs Vibrant Shaders v1.166 High - Motionblur.zip"
File "C:\Users\User\Desktop\MCInstaller\shaderpacks\Sildurs Vibrant Shaders v1.166 Lite.zip"
File "C:\Users\User\Desktop\MCInstaller\shaderpacks\Sildurs Vibrant Shaders v1.166 Medium.zip"
SetOutPath "$INSTDIR\resourcepacks"
File "C:\Users\User\Desktop\MCInstaller\resourcepacks\Faithful 1.12.2-rv4.zip"
SetOutPath "$INSTDIR\libraries\optifine\OptiFine\1.12.2_HD_U_C7"
File "C:\Users\User\Desktop\MCInstaller\libraries\optifine\OptiFine\1.12.2_HD_U_C7\OptiFine-1.12.2_HD_U_C7.jar"
SectionEnd

######################################################################

Section -Icons_Reg
SetOutPath "$INSTDIR"
WriteUninstaller "$INSTDIR\uninstall.exe"

WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}"  "DisplayName" "${APP_NAME}"
WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}"  "UninstallString" "$INSTDIR\uninstall.exe"
WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}"  "DisplayVersion" "${VERSION}"
WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}"  "Publisher" "${COMP_NAME}"

!ifdef WEB_SITE
WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}"  "URLInfoAbout" "${WEB_SITE}"
!endif
SectionEnd

######################################################################

Section Uninstall
${INSTALL_TYPE}
Delete "$INSTDIR\launcher_profiles.json"
Delete "$INSTDIR\options.txt"
Delete "$INSTDIR\optionsshaders.txt"
Delete "$INSTDIR\versions\1.12.2-OptiFine_HD_U_C7\1.12.2-OptiFine_HD_U_C7.jar"
Delete "$INSTDIR\versions\1.12.2-OptiFine_HD_U_C7\1.12.2-OptiFine_HD_U_C7.json"
Delete "$INSTDIR\versions\1.12.2\1.12.2.jar"
Delete "$INSTDIR\versions\1.12.2\1.12.2.json"
Delete "$INSTDIR\shaderpacks\Acid Shaders r6.zip"
Delete "$INSTDIR\shaderpacks\Animal Crossing Shaders r6.zip"
Delete "$INSTDIR\shaderpacks\Sildurs Enhanced Default [redone] v1.01.zip"
Delete "$INSTDIR\shaderpacks\Sildurs Vibrant Shaders v1.166 Extreme-Volumetric Lighting.zip"
Delete "$INSTDIR\shaderpacks\Sildurs Vibrant Shaders v1.166 Extreme.zip"
Delete "$INSTDIR\shaderpacks\Sildurs Vibrant Shaders v1.166 High - Motionblur.zip"
Delete "$INSTDIR\shaderpacks\Sildurs Vibrant Shaders v1.166 Lite.zip"
Delete "$INSTDIR\shaderpacks\Sildurs Vibrant Shaders v1.166 Medium.zip"
Delete "$INSTDIR\resourcepacks\Faithful 1.12.2-rv4.zip"
Delete "$INSTDIR\libraries\optifine\OptiFine\1.12.2_HD_U_C7\OptiFine-1.12.2_HD_U_C7.jar"
 
RmDir "$INSTDIR\libraries\optifine\OptiFine\1.12.2_HD_U_C7"
RmDir "$INSTDIR\resourcepacks"
RmDir "$INSTDIR\shaderpacks"
RmDir "$INSTDIR\versions\1.12.2"
RmDir "$INSTDIR\versions\1.12.2-OptiFine_HD_U_C7"
 
Delete "$INSTDIR\uninstall.exe"
!ifdef WEB_SITE
Delete "$INSTDIR\${APP_NAME} website.url"
!endif

RmDir "$INSTDIR"

DeleteRegKey ${REG_ROOT} "${UNINSTALL_PATH}"
SectionEnd

######################################################################

我需要改变什么?

编辑:嗯...它突然开始工作了。我尝试使用测试按钮而不是 EXE 来运行它。我不知道那是怎么破坏它的,这可能让我听起来很愚蠢,但这就是发生的事情。

【问题讨论】:

  • 把代码放在这里。你得到了什么错误?
  • @Matthew 没有错误,就在我测试它的时候,安装路径是程序文件(x86)。我无法将代码放在帖子上,因为堆栈溢出不允许长代码。这就是我能说的:pastebin.com/raw/cdwEjsE4
  • 不用担心,它现在开始工作了。无论如何,谢谢。
  • 永远不要将代码或错误作为图片(可访问性问题)或在外部站点(站点可能会关闭)包含代码或错误,而是将代码复制到问题中并将其格式化为代码块。做上述的问题是题外话。
  • 如果某些东西突然开始工作,它也可能突然停止工作,你需要弄清楚你改变了什么。

标签: nsis minecraft appdata


【解决方案1】:

如果没有更多信息,很难说出发生了什么,但我建议您将 RequestExecutionLevel User 添加到脚本中,以确保 Windows 不会将兼容性填充程序应用于安装程序。

InstallDirRegKey 可能会欺骗您,如果您在机器上测试期间安装到 Program Files。调试此类问题时,请确保注册表中不存在该值。

【讨论】:

  • 感谢您的回复。这是我需要的东西,就像您在不会安装的学生帐户上运行它一样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-06-19
  • 1970-01-01
  • 2019-08-08
  • 2023-04-07
  • 1970-01-01
  • 1970-01-01
  • 2020-09-04
相关资源
最近更新 更多