自定义安装程序操作期间的用户界面

时间:2020-03-06 14:39:35  来源:igfitidea点击:

在自定义安装程序操作期间显示UI的正确方法是什么?

我希望我的UI在安装对话框上是模态的,或者,我想一种在安装程序日志中显示来自自定义操作的文本/进度的方法。

安装程序是VS2005安装项目,而自定义操作是CInstaller派生的类。

解决方案

显示任何类型的非标准UI都需要更改UI处理程序对象。这并非易事,实现取决于我们用来编写MSI的工具包:我不确定VS设置项目是否可能实现。

通过自定义操作,显示简单的状态/进度消息并记录到MSI日志并不是一件很难的事,但是,至少不使用Windows Installer XML(WiX)工具集,这就是我自己使用的目的。

使用WiX编写自定义操作时,我们可以通过Microsoft.Deployment.WindowsInstaller.Session对象访问活动的安装程序会话,该对象具有"日志"(如果启用了日志记录,则将消息写入日志)和"消息"(执行许多已启用的日志记录操作,并将执行推迟到与该引擎相关联的UI处理程序对象),还有许多其他功能。

如果我们当前已经在C#中创建自定义操作,则可以在当前环境中找到类似的内容(我从未使用过VS.net安装程序项目,因此我不确定是否可以正常工作-实际上,这些功能使我们可以创建托管的自定义操作,这真让我感到惊讶。否则,我绝对建议我们对WiX进行自定义操作:这些操作可与任何MSI创作环境一起使用,并且非常灵活。