3

我正在使用 InnoSetup 为我的 WPF 应用程序创建安装程序。我的应用程序大约是~300Mo。我已经实现了这个方法来检查客户端环境是否有 MS Framework 4.0: http: //www.codeproject.com/Articles/20868/NET-Framework-1-1-2-0-3-5-Installer-for -InnoSetup 此方法使用 isxdl.dll。

当我启动安装程序时,它在这个任务上停留了 10 秒(在 InnoSetup 调试模式下):

Extracting temporary file: C:\Users\Ben\AppData\Local\Temp\is-IKJ7C.tmp\isxdl.dll

这个DLL大约是122Ko,很轻。我尝试使用更轻的应用程序(大约 5Mo)创建相同的安装程序(使用相同的脚本),并且安装程序运行良好(没有更多的卡住时间)。

我不知道应用程序文件(应用程序的权重)如何影响这个 dll 的加载。

4

1 回答 1

4

安装脚本将用于操作和功能的所有文件都应放在[Files]部分的开头,尤其是在使用SolidCompression=True. 这也是为他们使用的好选择Flags: nocompression dontcopy

[Files]
Source: ".\ISWin7.dll"; DestDir: "{tmp}"; Flags: dontcopy nocompression
Source: ".\games\{#BMPDir}\BMP\*"; DestDir: "{tmp}"; Flags: dontcopy nocompression
Source: ".\InnoCallback.dll"; DestDir: "{tmp}"; Flags: dontcopy nocompression
Source: ".\MyAppSourceFiles\*"; DestDir: "{app}"; Flags: ignoreversion

使用固态压缩的缺点是因为所有文件都被压缩成一个压缩流,安装程序不能再随机访问这些文件

  • 这使得它可以在访问最后一个文件之前“解压所有文件”。更多信息在这里
于 2013-04-04T10:47:58.317 回答