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