【发布时间】:2010-12-21 16:43:49
【问题描述】:
在自定义安装程序操作期间显示 UI 的正确方法是什么?
我希望我的用户界面在安装对话框中是模态的,或者,我想要一种在安装程序日志中显示我的自定义操作的文本/进度的方法。
安装程序是 VS2005 安装项目,自定义操作是 C# 安装程序派生类。
【问题讨论】:
标签: user-interface installation custom-action
在自定义安装程序操作期间显示 UI 的正确方法是什么?
我希望我的用户界面在安装对话框中是模态的,或者,我想要一种在安装程序日志中显示我的自定义操作的文本/进度的方法。
安装程序是 VS2005 安装项目,自定义操作是 C# 安装程序派生类。
【问题讨论】:
标签: user-interface installation custom-action
显示任何类型的非标准 UI 都需要更改 UI 处理程序对象。这不是微不足道的,其实现取决于您用于创作 MSI 的工具包:我不确定 VS 设置项目是否可行。
通过自定义操作显示简单的状态/进度消息并记录到 MSI 日志并不太难,但至少不使用 Windows Installer XML (WiX) toolset,这是我自己为此目的使用的。
使用 WiX 编写自定义操作时,您可以通过 Microsoft.Deployment.WindowsInstaller.Session 对象访问活动安装程序会话,该对象具有“日志”(如果启用了日志记录,则将消息写入日志)和“ Message'(执行任何已启用的日志记录操作并将执行延迟到与引擎关联的 UI 处理程序对象)功能,以及许多其他好东西。
如果您当前已经在 C# 中创建自定义操作,您可能会在您当前的环境中找到类似的东西(我从未使用过 VS.net 安装程序项目,所以我不确定它们是如何实现的工作——实际上我很惊讶这些允许您创建托管的自定义操作...)。否则,我绝对建议您研究 WiX 的自定义操作:这些操作适用于任何 MSI 创作环境,并且非常灵活。
【讨论】: