刚开始使用NullSoft,我试图安装包含其文件和子文件夹的文件夹,我无法找出问题出在哪里,我可以寻求帮助吗?
OutFile "Autoclicker.exe"
InstallDir $PROGRAMFILES
Section
SetOutPath $INSTDIR
CopyFiles "C:\Users\cameron\Desktop\NullSoft\PH INSTALLER\Data\Autoclicker\Autoclickr.ink" "$DESKTOP"
WriteUninstaller $INSTDIR\Uninstaller.exe
File /r "C:\Users\cameron\Desktop\NullSoft\PH INSTALLER\Data\Autoclicker\"
SectionEnd
Section "Uninstall"
Delete $INSTDIR\Autoclicker
Delete $INSTDIR\Uninstaller.exe
SectionEndenter code here
答案 0 :(得分:1)
InstallDir
应该在其路径中包含应用程序的名称,而不仅仅是要安装到的根目录。
CopyFiles
将文件从最终用户计算机上的一个位置复制到另一个位置,不能用于从安装程序中提取文件!通常用于从CD复制文件或制作某些内容的备份副本。
在File
中使用/r
指令时,应使用通配符filespec来包含所有文件。
我建议您将代码更改为以下形式:
!define MySource "C:\Users\cameron\Desktop\NullSoft\PH INSTALLER\Data\Autoclicker"
InstallDir $PROGRAMFILES\Autoclicker
Section
SetOutPath $INSTDIR
WriteUninstaller $INSTDIR\Uninstaller.exe
File /r "${MySource}\*.*"
SetOutPath $Desktop
File "${MySource}\Autoclickr.ink"
SectionEnd
我不知道什么是.INK文件,但听起来不像是用户桌面上的文件。如果您实际上是指.LNK(快捷方式/链接),则应使用CreateShortcut
指令来创建.LNK文件:
CreateShortcut "$Desktop\Autoclikr.lnk" "$InstDir\MyApp.exe"
最后,在卸载程序中,您必须使用RMDir /r
删除目录,而不是Delete
。
答案 1 :(得分:0)
正如@Anders所述,您可以使用File /r
递归安装文件。该文档位于NSIS File Reference