如何根据Installshield中的用户选择复制/安装两组文件中的一组?

时间:2016-01-20 08:43:47

标签: windows-installer installshield installscript installshield-2012

我使用的是Installshield 2014专业版。我正在为我的桌面应用程序创建安装程序。

安装程序要求:只能使用一个安装程序,它可以找到系统中存在的JRE(32位或64位),具体取决于它选择要在目标计算机上安装的文件。

那些我尝试但没有解决的方法

1。我制作了一个用户定义的属性或一个可以在32bit / 64bit对话框中选择/更改的变量。并且在组件或功能的条件下赋予此属性。根据条件,应复制文件。但最后我发现在第一次对话到来之前我检查了组件或功能的条件。所以这意味着在安装欢迎窗口到来之前评估我用来检查的属性。因此我的32位或64位文件都没有被复制。只有公共文件(或组件/功能)在任何条件下都不会被复制到目标系统中。 问题:有没有办法可以延迟最初评估财产的步骤,还是可以在对话窗口到来之后重新启动?

此方法无效。所以我尝试了另一种方法。

2. 我使用了#34;支持文件"选项。但它也没有用。因为我的32位和64位文件具有相同的名称。如果我放置一个同名文件,它会复制我放在最后一个文件中并将其复制到" TempFolder"目标系统。并且installshield没有在支持文件中创建文件夹的选项。如果我能够做到这一点,我的问题就可以解决了。 问题:有没有办法可以将脚本中的文件从打包的安装程序复制到目标计算机?我该如何放置这些文件?请解释一下。

请帮我找到解决方案。如果有人有不同的解决方案,也欢迎这些。

2 个答案:

答案 0 :(得分:0)

我有点不清楚你是否愿意:

  • 根据目标计算机安装32位或64位JRE,然后安装您的应用程序,或
  • 检测32位或64位JRE(或两者),然后安装应用程序的32位或64位变体。

对于前者,我建议创建和使用InstallShield先决条件。您可以在目标计算机的平台上对它们进行调节,以便只安装一个。

对于后者,我建议使用套件/高级UI项目,其中包含每个32位和64位版本的软件包(可能是MSI软件包)。如果您确定将至少存在一个JRE,并且这不会更改,则可以使用检测相应JRE是否存在的资格条件来启用或禁用每个程序包。如果您可能需要交付JRE,或者需要允许更改,您应该将您的套件组织成单独的功能并设置功能条件以选择默认安装的功能,甚至可能允许用户选择要安装的版本。

答案 1 :(得分:0)

为此,最好的方法是使用systemSearh设置条件属性。

在installshield设计器中的行为和逻辑。

正确clic并选择"添加..."在最后一个对话框中,你会找到一个复选框"将值存储在属性中并在安装条件下使用该属性"