我的工作是由一个MSI文件和管理的先决条件的引导应用程序的安装工程;而且由于需要一些先决条件取决于什么功能的用户选择安装,引导应用程序还提供了用户界面。我希望能够迫使添加/删除程序(或程序和功能)控制面板(ARP)当用户想运行一个修改安装运行引导应用程序,而不是微星的。我试图改变安装程序的卸载注册表项到引导应用程序的路径下的ModifyPath价值,但无济于事。在ARP单击更改按钮仍然打动了我的MSI。

有一个简单的方法做我想要什么?做不到这一点,是有办法的MSI检测,这是从ARP运行使用更改按钮,这样我可以得到它显示,告诉用户运行引导程序,而不是一个错误信息? (即:不将ARP使用相同的命令行参数,用户将使用运行微星并指定修改安装,而不必看到的用户界面维护页?如果不是,我应该怎么找?)

修改我的安装程序安装的不只是一个应用程序,但一组应用程序,其每一个的用户被允许选择不安装。 (我们正在安装这些应用程序套件,因为他们大多依赖于安装在特定的其中之一。因此,这将是对用户更容易地只设一个安装程序处理他们所有,而不是单独的安装程序是这个新的安装程序是要取代。)

在套件应用程序不都需要同一套的先决条件,因此,它是不容易的MSI来检查先决条件,直到它知道在用户想要安装套件的应用程序。此外,我们希望通过具有用户不希望安装自动启动应用程序的所有先决条件安装程序,以方便用户。 (这就是为什么安装程序的UI是在引导应用程序实现的主要原因。)

是否有可能为MSI启动引导程序,并同时引导程序进行,最后重新发起MSI然后默默地立即退出? (当引导程序启动微星,它传递到微星的命令行参数之一是告诉它的引导程序启动它。这是目前使用的,除其他事物的属性,以使微星显示错误消息,告诉用户,除非一个卸载或修理安装在命令行上指定运行引导应用程序。)

有帮助吗?

解决方案 2

我能够得到MSI启动引导程序为我解决我的困境。我只是写了启动自举程序,不等待它完成自定义操作。起初,我试图把自定义操作到用户界面序列,但我不能结束安装,而不会产生错误的方式。

由于我的目标是只运行了修改安装引导,我把一对夫妇的新的控制事件对维护对话(其中用户修改,修复和删除之间进行选择)的Next按钮。如果用户选择了维修(MaintenanceMode〜=“修改”),自定义操作启动,对话是使用与退出作为参数的EndDialog行动驳回。 (I改性的条件对进入下一对话是会启动自举之一的负的,即,NOT(MaintenanceMode〜=“修改”现有的控制事件)。)自举程序被编程为跳过在其图形用户界面维护对话,并在序列中的下一个对话的开始,虽然用户被允许回到维修对话,如果他这样选择。 (如果他这样做,自举程序只是回到它的版本维护对话,它看起来非常相似,一个在MSI的。)

我知道,这是一个有点杂牌的,但它做什么,我需要做的。 : - )

其他提示

添加/删除程序将只运行MSI,有寻找或运行任何应用程序的引导程序不支持。

什么都可以(也应该)做的就是添加的先决条件检查,微星不管它是如何运行的。这样,你可以警告说,他们所要求的东西,目前还不能完成(添加不具有它的先决条件尚未功能)的用户。

您可以添加有关运行,而不是如果一个前提条件缺少引导程序的消息。

我知道这是晚了,但布拉德·希思确实有一些有关此评论 HTTP://blogs.msdn的.com / b /荒地/存档/ 2005/08/16 / A-原因换arpsystemcomponent.aspx

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top