我可以选择使用Inno Setup 6.1.1下载的文件是否必须在[Files]部分中?

问题描述

为Inno Setup 6.1.1 beta(CodeDownloadFiles.iss)提供的示例在[Files]部分中具有以下示例:

; These files will be downloaded
Source: "{tmp}\innosetup-latest.exe"; DestDir: "{app}"; Flags: external
Source: "{tmp}\ISCrypt.dll"; DestDir: "{app}"; Flags: external

目前,我没有在我的脚本中有这样的条目。这是因为我们有条件地决定是否需要在安装时下载相关文件(如其他SO问题中所述)。

因为我没有将尝试添加[Files]部分中,所以我需要意识到一个后果吗?

注意,我们可选下载的文件是:

  • Microsoft .NET Framework
  • Visual Studio运行时32位
  • Visual Studio运行时64位
  • 本地化的CHM帮助文件

对于前3个,如果用户卸载了我的应用程序,我不希望尝试卸载它们。至于CHM文件,无论如何它不会在“添加/删除”中创建一个条目,我们会在卸载时手动尝试将其删除

; The user might have downloaded offline help documentation
Type: files; Name: "{app}\MeetSchedAssist.chm"

那么,[Files]节中没有可选下载的文件是否重要?

解决方法

对于要使用的文件,请使用[Files] section

  1. 打包到安装程序中,然后复制到目标计算机(最常见的情况);
  2. 打包到安装程序中,但仅用于安装程序支持(例如DLL,子安装程序等)–使用Flags: dontcopy;
  3. 使用Flags: external从外部源复制到目标计算机。

您的前三个文件似乎是您要下载的子安装程序(外部源),但仅执行(安装程序支持,而不是复制到目标计算机)。因此,它们不属于以上三个类别。

您的帮助文件属于类别3。由于仅有条件下载该文件,因此您还需要在[Files]部分中处理条件(除了下载之外)。通常,您可以使用Tasks or Components parameters来做到这一点。