在自定义安装程序操作期间显示UI的正确方法是什么?
我希望我的UI在安装对话框中是模态的,或者我想在安装程序dislog中显示自定义操作的文本/进度。
安装程序是VS2005安装项目,自定义操作是C#Installer派生类。
答案 0 :(得分:3)
显示任何类型的非标准UI都需要更改UI处理程序对象。这不是微不足道的,实现取决于您用来创建MSI的工具包:我不确定VS安装项目是否可行。
显示简单的状态/进度消息并记录到MSI日志并不是很难做到自定义操作,但至少不使用Windows Installer XML (WiX) toolset,这是我自己用于此目的。
使用WiX创作自定义操作时,您可以通过Microsoft.Deployment.WindowsInstaller.Session对象访问活动安装程序会话,该对象具有“Log”(如果启用了日志记录,则将消息写入日志)和'消息'(执行任何已启用的日志记录操作并将执行推迟到与引擎关联的UI处理程序对象)功能,以及许多其他好东西。
如果您目前已经在C#中创建自定义操作,您可能能够在当前环境中找到类似的内容(我从未使用过VS.net安装程序项目,因此我不确定它们是如何使用的工作 - 实际上我很惊讶这些允许您创建托管自定义操作...)。否则,我肯定会建议使用WiX进行自定义操作:这些操作适用于任何MSI创作环境,并且非常灵活。