Installation 在NSIS节中创建多个卸载程序
NSIS部分可以创建多个卸载程序吗? 我的安装程序可以为一个应用程序的3个不同版本安装插件-因此安装程序将在3个不同的目录中安装文件 在每个目录中,我想添加一个卸载程序文件,只删除该目录中的文件 3个卸载文件中的每一个都是在同一分区内创建的,这是否无效?如何获取脚本以创建3个卸载程序(如果可能) 以下部分仅创建一个卸载程序,即最后一个(版本10卸载程序):Installation 在NSIS节中创建多个卸载程序,installation,nsis,Installation,Nsis,NSIS部分可以创建多个卸载程序吗? 我的安装程序可以为一个应用程序的3个不同版本安装插件-因此安装程序将在3个不同的目录中安装文件 在每个目录中,我想添加一个卸载程序文件,只删除该目录中的文件 3个卸载文件中的每一个都是在同一分区内创建的,这是否无效?如何获取脚本以创建3个卸载程序(如果可能) 以下部分仅创建一个卸载程序,即最后一个(版本10卸载程序): 您可以根据需要多次调用WriteUninstall,但应使用完整路径名(WriteUninstall“$VERSxDIR\${APPNAME
您可以根据需要多次调用WriteUninstall,但应使用完整路径名(
WriteUninstall“$VERSxDIR\${APPNAME}Uninstall.exe”
)
您没有发布完整的脚本,因此很难判断逻辑有什么问题(您可能希望使用LogicLib.nsh,这样您就可以执行{IF}
s),但您应该能够通过“MessageBox调试”找到解决方案
您没有提到的一件事可能与卸载程序逻辑有关。如果3个卸载程序都执行完全相同的任务,那么这不是问题,但我希望卸载程序注册表注册至少会有所不同
有两种方法可以解决这个问题:
- 将数据标记到(或同一目录中的.ini)
- 使用!系统调用makensis.exe并在编译时生成卸载程序,该卸载程序作为普通
文件包含
另一种可能与子目录中的插件相关的解决方案是,在卸载程序中使用组件页,并且仅在删除所有3个插件后删除卸载程序 我使用HW编辑开始我的NSIS脚本,不要引用我的话,但我相信你可以制作3个卸载程序,每个插件一个。您可以在此处下载:hmne.sourceforge.net/通过向导步骤制作一个测试安装程序/卸载程序-然后您可以看到如何将完整安装程序中的行剥离为3个单独的行。我将尝试进一步使用NSIS UI 2(现代GUI),并在卸载程序中创建一个页面,其中有三个复选框,每个复选框对应一个插件。如果你想了解更多信息,请告诉我?
Section "Install Plugin Files" MainSetup
CheckInstallVers8:
IntCmp $installVers8 1 InstallVersion8 CheckInstallVers9 InstallVersion8
CheckInstallVers9:
IntCmp $installVers9 1 InstallVersion9 CheckInstallVers10 InstallVersion9
CheckInstallVers10:
IntCmp $installVers10 1 InstallVersion10 MainInstallation InstallVersion10
InstallVersion8:
# install plugins...
SetOutPath $VERS8DIR
writeUninstaller "${APPNAME} Uninstall.exe"
GoTo CheckInstallVers9
InstallVersion9:
SetOutPath $VERS9DIR
writeUninstaller "${APPNAME} Uninstall.exe"
GoTo CheckInstallVers10
InstallVersion10:
SetOutPath $VERS10DIR
writeUninstaller "${APPNAME} Uninstall.exe"
SectionEnd