Installation Inno设置,从cd-rom开始慢速运行

Installation Inno设置,从cd-rom开始慢速运行,installation,windows-installer,inno-setup,Installation,Windows Installer,Inno Setup,我正在使用Inno安装编译器5.4.3。创建安装应用程序的步骤 我的应用程序具有以下结构: app.exe 资料 其中data是我保存所有应用程序相关文件(jpg图像)的文件夹。该应用程序将从cd-rom中分发。使用向导创建安装后,我得到了一个大小为300Mb的文件 问题是系统从cd打开它需要2-3分钟。我想这是因为文件的大小。这是太多的时间没有任何形式的反应,从安装程序 对于这种情况有什么简单的解决办法吗? 我不需要压缩文件,如果我能使安装程序的结构看起来和应用程序的结构一样(不是只有一个

我正在使用Inno安装编译器5.4.3。创建安装应用程序的步骤

我的应用程序具有以下结构:

  • app.exe
  • 资料
其中data是我保存所有应用程序相关文件(jpg图像)的文件夹。该应用程序将从cd-rom中分发。使用向导创建安装后,我得到了一个大小为300Mb的文件

问题是系统从cd打开它需要2-3分钟。我想这是因为文件的大小。这是太多的时间没有任何形式的反应,从安装程序

对于这种情况有什么简单的解决办法吗? 我不需要压缩文件,如果我能使安装程序的结构看起来和应用程序的结构一样(不是只有一个文件…),我会很好。任何一种能让它运行得更快的解决方案都是好的

谢谢, 韦德兰

更新: 以下是“我的文件”设置的外观:

[Files]
Source: "C:\data\palacabencic\bin\PalacaBencic.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "{src}C:\data\palacabencic\bin\data\*"; DestDir: "{app}\data"; Flags: external
如果我尝试放置{src}和外部:

Source: "{src}C:\data\palacabencic\bin\data\*"; DestDir: "{app}\data"; Flags: external

它不会在installer文件夹中添加数据文件夹,它只创建安装文件

在分区记录中指定
外部
标志。请注意:

指定外部标志时,源必须是完整路径名 分发介质上的现有文件(或通配符)或 用户系统(例如“{src}\license.ini”)

类似这样的操作应该可以防止将文件包含到输出设置文件中:

[Files]
Source: "{src}\Image.jpg"; DestDir: "{app}"; Flags: external

当您使用
external
标志时,您是在告诉Inno复制用户系统上已可用的未压缩文件(在您的情况下,是在CD上)。和
{src}
指定相对于setup.exe本身的路径

[Files]
Source: "C:\data\palacabencic\bin\PalacaBencic.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "{src}\data\*"; DestDir: "{app}\data"; Flags: external

编译的输出将只是安装程序,但在您将此文件和数据文件复制到CD后,当您运行安装程序时,它会将这两个文件复制到最终安装路径。

您的问题是资源管理器在启动安装可执行文件之前试图查找/验证安装可执行文件上的代码签名证书。由于文件很大,它会在运行整个文件之前至少读取一次。 这与中记录的导致图标不显示的问题相同


解决方法是使用数据文件上的
external
标志(如所建议),或使用磁盘跨度将设置拆分为主设置和数据文件。

您可以设置为“无”,但是慢度可能取决于读取速度。我猜从光盘驱动器读取大文件比读取一千个小文件快,但是OP当然可以测试。@Sertac,同意,但在这种情况下,将文件包括在内不是一个好主意(即使它们将被压缩到一个文件中)进入输出设置文件,因为在启动设置文件之前,必须从介质中完全读取该文件。最好是压缩所有图像文件,但将它们与安装文件分开保存,一旦安装过程开始,就从该存档中提取文件。我打赌这会有一些设置组合。>“安装文件在启动之前必须从介质中完全读取”>我认为这不正确。@Sertac,我的意思是安装前必须在临时目录中提取安装文件,以便完全读取。我这样尝试:`[Files]来源:“C:\data\palacabencic\bin\palacabencic.exe;DestDir:{app}”;标志:ignoreversion源:{src}C:\data\palacabencic\bin\data*;DestDir:{app}\data;标志:外部`但它不复制“data”文件夹