是否可以在 InstallShield 安装中提供特定版本的支持文件?
Is it possible to have release specific support files in an InstallShield installation?
我们的一个 partners/resellers 是一家设备制造商,他们拥有我们应用程序的特定安装程序,该程序还为其硬件安装实用程序和驱动程序。到目前为止,我们已经将 driver/utility 放入 InstallShield 的 "Support Files" 部分,并且如果用户输入了特定于我们应用程序合作伙伴版本的序列号,则通过安装脚本静默启动实用程序安装程序。该合作伙伴最近来找我们,对他们的许可协议表示担忧,特别是我们不允许将他们的实用程序分发给不是他们客户的用户,而只是将他们的安装程序包含在我们的安装程序中(即使我们不 运行 ) 构成分布。
有什么方法可以确保合作伙伴实用程序的支持文件只包含在他们发布我们的应用程序中吗?
Driver Installation: For the record, driver installation is apparently changing. See this answer. Essentially drivers are to be
distributed via Windows Update
, or at least via a standalone package
without the need for an installer.
- Windows Hardware Dev Center dashboard is now available for "hardware tasks":
Hardware certification
Collaborative driver development
Driver distribution through Windows Update
I thought I'd just mention it. I know little about it to be honest.
OEM?: 至于你的实际问题,我不确定我是否正确理解了这些要求。您只需要为这些人进行特殊设置吗?有点像您自己设置的 OEM 版本?
支持文件:我不知道有什么内置的方式来获得特定版本的支持文件。也许您可以使用 COM 自动化功能来自动更新 ISM 的过程,并为每个构建使用正确的配置,但我不会采用这种笨拙的方法。似乎有它的对象:ISWiSetupFile
和 ISWiSetupFiles
。我从来没有尝试过。 Here is a COM Automation Sample 从回来的路上。
Suite Project:我可能会将他们的安装程序与您自己的安装程序捆绑在一起,然后将其全部打包在一个 Installshield Suite project 中。这些本质上是引导程序项目,可以按顺序将 MSI、MSP、EXE 和其他可执行文件启动到 运行。我不确定哪些版本的 Installshield 有这些项目可用。这意味着他们自己的设置 运行 在您的设置之前或之后 - 不是在您自己的设置中,而是按照套件的 setup.exe
调用的顺序 - 和您可以在没有第三方驱动程序和工具的情况下交付自己的设置。那只是 Installshield 套件项目不同风格的另一个编译。
Setup Flavors:您可以使用 Installshield 的 相对轻松地从同一源项目编译不同风格的设置发布 Flag 功能。这与上述 Suite 项目不同,因为这是一个以不同风格交付的 MSI,而不是按顺序交付的多个 MSI 文件 运行。它允许您使用标志标记部分设置,以便将其包含或排除在您正在构建的设置中。例如,某些功能可以用 PRO 标记为专业版。 Please search the help file for information on release flags.
链接:
- Removing Default dialogs from MSI
我认为仔细控制源文件的路径变量可以解决问题。您可能无法删除他们文件的所有痕迹,但到 overriding where the path variable points at the release level,您至少可以为所有其他构建配置使用一组备用的空文件(具有相同的名称)。这样的空文件意味着您没有分发他们的代码。因此,除非文件名本身有问题,否则请尝试一下。
(您没有提到您使用的是哪个版本的 InstallShield 运行,但我通过 InstallShield 2014 找到了等效的文档,这是我在网上找到的最早的文档。我认为它存在的时间比这更长。 )
如果我没记错的话,您不能使用标志来控制 ISSetupFile table。但你能做的是:
1) 在构建时使用自动化接口将这些文件注入您的 ISM。
2) 创建具有 ISSetupFile table 中资源的合并模块,并将合并模块关联到不同的功能。在功能级别使用发布标志来控制合并哪些合并模块,从而控制 ISSetupFile table 的内容。
我们的一个 partners/resellers 是一家设备制造商,他们拥有我们应用程序的特定安装程序,该程序还为其硬件安装实用程序和驱动程序。到目前为止,我们已经将 driver/utility 放入 InstallShield 的 "Support Files" 部分,并且如果用户输入了特定于我们应用程序合作伙伴版本的序列号,则通过安装脚本静默启动实用程序安装程序。该合作伙伴最近来找我们,对他们的许可协议表示担忧,特别是我们不允许将他们的实用程序分发给不是他们客户的用户,而只是将他们的安装程序包含在我们的安装程序中(即使我们不 运行 ) 构成分布。 有什么方法可以确保合作伙伴实用程序的支持文件只包含在他们发布我们的应用程序中吗?
Driver Installation: For the record, driver installation is apparently changing. See this answer. Essentially drivers are to be distributed via
Windows Update
, or at least via astandalone package
without the need for an installer.
- Windows Hardware Dev Center dashboard is now available for "hardware tasks":
Hardware certification
Collaborative driver development
Driver distribution through Windows Update
I thought I'd just mention it. I know little about it to be honest.
OEM?: 至于你的实际问题,我不确定我是否正确理解了这些要求。您只需要为这些人进行特殊设置吗?有点像您自己设置的 OEM 版本?
支持文件:我不知道有什么内置的方式来获得特定版本的支持文件。也许您可以使用 COM 自动化功能来自动更新 ISM 的过程,并为每个构建使用正确的配置,但我不会采用这种笨拙的方法。似乎有它的对象:ISWiSetupFile
和 ISWiSetupFiles
。我从来没有尝试过。 Here is a COM Automation Sample 从回来的路上。
Suite Project:我可能会将他们的安装程序与您自己的安装程序捆绑在一起,然后将其全部打包在一个 Installshield Suite project 中。这些本质上是引导程序项目,可以按顺序将 MSI、MSP、EXE 和其他可执行文件启动到 运行。我不确定哪些版本的 Installshield 有这些项目可用。这意味着他们自己的设置 运行 在您的设置之前或之后 - 不是在您自己的设置中,而是按照套件的 setup.exe
调用的顺序 - 和您可以在没有第三方驱动程序和工具的情况下交付自己的设置。那只是 Installshield 套件项目不同风格的另一个编译。
Setup Flavors:您可以使用 Installshield 的 相对轻松地从同一源项目编译不同风格的设置发布 Flag 功能。这与上述 Suite 项目不同,因为这是一个以不同风格交付的 MSI,而不是按顺序交付的多个 MSI 文件 运行。它允许您使用标志标记部分设置,以便将其包含或排除在您正在构建的设置中。例如,某些功能可以用 PRO 标记为专业版。 Please search the help file for information on release flags.
链接:
- Removing Default dialogs from MSI
我认为仔细控制源文件的路径变量可以解决问题。您可能无法删除他们文件的所有痕迹,但到 overriding where the path variable points at the release level,您至少可以为所有其他构建配置使用一组备用的空文件(具有相同的名称)。这样的空文件意味着您没有分发他们的代码。因此,除非文件名本身有问题,否则请尝试一下。
(您没有提到您使用的是哪个版本的 InstallShield 运行,但我通过 InstallShield 2014 找到了等效的文档,这是我在网上找到的最早的文档。我认为它存在的时间比这更长。 )
如果我没记错的话,您不能使用标志来控制 ISSetupFile table。但你能做的是:
1) 在构建时使用自动化接口将这些文件注入您的 ISM。
2) 创建具有 ISSetupFile table 中资源的合并模块,并将合并模块关联到不同的功能。在功能级别使用发布标志来控制合并哪些合并模块,从而控制 ISSetupFile table 的内容。