Installation 如何编写允许从CD运行软件的安装程序

Installation 如何编写允许从CD运行软件的安装程序,installation,inno-setup,Installation,Inno Setup,我有一个应用程序,它将位于CD-ROM上,我需要为它制作一个安装程序,它将询问用户是否希望从CD-ROM运行该应用程序或将其安装在硬盘驱动器上,我如何使用InnoSetup进行安装,这是可能的吗?您可以编写自己的程序来询问用户,然后运行InnoSetup安装程序(如果需要) 或者,如果需要,挂接到并中止安装程序。您可以编写自己的程序询问用户,然后运行InnoSetup安装程序(如果需要) 或者,如果需要,挂接到并中止安装程序。下面是一个使用[Tasks]定义CD-ROM或硬盘驱动器安装的示例。程

我有一个应用程序,它将位于CD-ROM上,我需要为它制作一个安装程序,它将询问用户是否希望从CD-ROM运行该应用程序或将其安装在硬盘驱动器上,我如何使用InnoSetup进行安装,这是可能的吗?

您可以编写自己的程序来询问用户,然后运行InnoSetup安装程序(如果需要)


或者,如果需要,挂接到并中止安装程序。

您可以编写自己的程序询问用户,然后运行InnoSetup安装程序(如果需要)


或者,如果需要,挂接到并中止安装程序。

下面是一个使用[Tasks]定义CD-ROM或硬盘驱动器安装的示例。程序文件位于安装程序旁边,即CD-ROM上。您可以通过Startmenu快捷方式启动应用程序,该快捷方式指向CD-ROM或硬盘驱动器,具体取决于选择的任务选项。希望这有帮助

[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
UninstallDisplayIcon={app}\MyProg.exe
Compression=lzma2
SolidCompression=yes
OutputDir=userdocs:Inno Setup Examples Output

[Files]
;The MyProg.exe file shall reside in the same (cd-rom) folder as the Installer. It will only be installed if the Task option RunFromInstallation is checked.
Source: "{src}\MyProg.exe"; DestDir: "{app}"; Flags: external; Tasks: RunFromInstallation;

[Icons]
;Depending upon which Task Option was selected the Start menu item points to either the installation folder or the installation (cd-rom) media 
Name: "{group}\My Program"; Filename: "{src}\MyProg.exe"; Tasks: RunFromExternalMedia;
Name: "{group}\My Program"; Filename: "{app}\MyProg.exe"; Tasks: RunFromInstallation;

[Tasks]
;In Task dialog user will be prompted to select the Deployment Method. Because of the Exclusive Flag only one of the options can be selected.
Name: RunFromExternalMedia; Description: "Run from: {src}";    GroupDescription: Deployment method:; Flags: exclusive;
Name: RunFromInstallation;  Description: "Install to: {app}";  GroupDescription: Deployment method:; Flags: exclusive;

下面是一个使用[Tasks]定义CD-ROM或硬盘驱动器安装的示例。程序文件位于安装程序旁边,即CD-ROM上。您可以通过Startmenu快捷方式启动应用程序,该快捷方式指向CD-ROM或硬盘驱动器,具体取决于选择的任务选项。希望这有帮助

[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
UninstallDisplayIcon={app}\MyProg.exe
Compression=lzma2
SolidCompression=yes
OutputDir=userdocs:Inno Setup Examples Output

[Files]
;The MyProg.exe file shall reside in the same (cd-rom) folder as the Installer. It will only be installed if the Task option RunFromInstallation is checked.
Source: "{src}\MyProg.exe"; DestDir: "{app}"; Flags: external; Tasks: RunFromInstallation;

[Icons]
;Depending upon which Task Option was selected the Start menu item points to either the installation folder or the installation (cd-rom) media 
Name: "{group}\My Program"; Filename: "{src}\MyProg.exe"; Tasks: RunFromExternalMedia;
Name: "{group}\My Program"; Filename: "{app}\MyProg.exe"; Tasks: RunFromInstallation;

[Tasks]
;In Task dialog user will be prompted to select the Deployment Method. Because of the Exclusive Flag only one of the options can be selected.
Name: RunFromExternalMedia; Description: "Run from: {src}";    GroupDescription: Deployment method:; Flags: exclusive;
Name: RunFromInstallation;  Description: "Install to: {app}";  GroupDescription: Deployment method:; Flags: exclusive;

等等,安装程序将询问用户是否要从CD运行应用程序?这对我来说没什么意义。安装程序是用于安装的,而不是用于执行应用程序。这就是那些(通常:-)彩色自动运行应用程序的用途。还是我错过了什么?顺便说一句,你没有说过;该安装程序会出现在CD上吗?@Close,这是一个与Inno安装程序相关的编程问题。这不属于服务器故障!稍后我将删除此评论…这是客户想要的;)。因此,是的,所有内容都在CD上,因此最终用户可以选择是从CD上运行,还是将CD内容安装到硬盘上。没什么要说的了:-)好的,现在他们如何想象这样的安装程序?对于start,我建议创建一个自定义表单,其中包含运行或安装选项,这将作为第一件事显示,如果用户按install,它将启动向导。如果他们选择运行选项,应用程序将启动,安装程序将退出。你怎么想(或者他们可能怎么想)?@哈弗,当然,可能是的。我只是想防止“随机”的亲密选民迁移到不同的网站。谢谢你的帮助!等等,安装程序将询问用户是否要从CD运行应用程序?这对我来说没什么意义。安装程序是用于安装的,而不是用于执行应用程序。这就是那些(通常:-)彩色自动运行应用程序的用途。还是我错过了什么?顺便说一句,你没有说过;该安装程序会出现在CD上吗?@Close,这是一个与Inno安装程序相关的编程问题。这不属于服务器故障!稍后我将删除此评论…这是客户想要的;)。因此,是的,所有内容都在CD上,因此最终用户可以选择是从CD上运行,还是将CD内容安装到硬盘上。没什么要说的了:-)好的,现在他们如何想象这样的安装程序?对于start,我建议创建一个自定义表单,其中包含运行或安装选项,这将作为第一件事显示,如果用户按install,它将启动向导。如果他们选择运行选项,应用程序将启动,安装程序将退出。你怎么想(或者他们可能怎么想)?@哈弗,当然,可能是的。我只是想防止“随机”的亲密选民迁移到不同的网站。谢谢你的帮助!自己的程序!=inno安装,我想我可以用InnoSetups来做,当然你可以,但是有很多事情需要澄清。除视觉要求外;例如,如果安装过程需要提升,而运行应用程序则不需要提升,那么在启动“自动运行”屏幕时,难道不需要麻烦向用户询问提升吗?对于一个模糊的问题,一个模糊的答案。我本来打算添加这个作为一个单独的答案,但基本上与这个答案相同:这样做的“正确方法”是使用Inno只编写安装部分,然后使用单独的“自动运行”程序,让用户在安装或从光盘运行之间进行选择。当然,让Inno同时完成这两项工作是可能的,但它确实不是为它设计的,而且将它分开要干净得多。自己的程序!=inno安装,我想我可以用InnoSetups来做,当然你可以,但是有很多事情需要澄清。除视觉要求外;例如,如果安装过程需要提升,而运行应用程序则不需要提升,那么在启动“自动运行”屏幕时,难道不需要麻烦向用户询问提升吗?对于一个模糊的问题,一个模糊的答案。我本来打算添加这个作为一个单独的答案,但基本上与这个答案相同:这样做的“正确方法”是使用Inno只编写安装部分,然后使用单独的“自动运行”程序,让用户在安装或从光盘运行之间进行选择。当然,让Inno同时做这两项工作是可能的,但它实际上并不是为它设计的,而且将它分开要干净得多。