如何在 wix 屏幕/对话框之间插入 C# CA 屏幕/表单
Posted
技术标签:
【中文标题】如何在 wix 屏幕/对话框之间插入 C# CA 屏幕/表单【英文标题】:How to insert C# CA screen/form in between wix screens/dialogs 【发布时间】:2014-10-23 06:06:17 【问题描述】:我的要求是在 2 个 Wix 对话框之间插入 C# CA 表单。
详情:
-
我的第一个屏幕是 wix 对话框,单击“下一步”按钮后,Wix 对话框应关闭,C# CA 表单应打开。
在 C# CA 表单中单击“下一步”按钮时,该按钮应关闭并打开第二个 Wix 对话框。
在 C# CA 表单中单击“后退”按钮时,应关闭并打开第一个 Wix 对话框。
如何在 Wix 中实现。
提前致谢。
【问题讨论】:
什么是“C# CA 表单”? CA 用于“自定义操作”,据我所知 除了 Van S 提出的问题之外,如果没有大量不清楚的工作,这在技术上甚至是不可能的。如果您认为 Windows Installer 对话框只是一堆 .NET 表单,它可能看起来很简单,但事实并非如此。您在询问从 Windows Installer 对话框进程运行的 Next 按钮如何从其他位置找到并调用对话框,为其提供正确的焦点和 Z 顺序,然后您的对话框如何调用下一个 Windows Installer 对话框,为其提供焦点, Z 顺序等。正如 Van S. 所说,只需为其设计自己的 WiX 对话框或使用引导程序。 @PhilDW,是的,这似乎无法实现。似乎 Wix 不支持这一点。感谢您的回复。 它甚至不是 WiX,它是 Windows Installer 的架构。您可以使用替换 MSI UI 的 WiX 引导程序来执行此操作,但这需要您提供安装过程中显示的大部分表单。但关键是您可以将自己的 C# 表单插入到序列中,因为如果(例如)它们在类库中,您可以从引导程序中调用它们。例如bryanpjohnston.com/2012/09/28/… 【参考方案1】:AFAIU,您将创建一个包含 UI 的自定义操作,这违反了自定义操作设计实践。例如,您将无法进行静默安装。有一个 CA 最佳实践列表here。
似乎向安装 UI 链添加自定义对话框是您真正需要的。有几篇文章如何做到这一点,例如,this one。
您需要的 UI 体验可能无法通过 Windows Installer 有限的 UI 功能获得。在这种情况下,您应该考虑如何重新设计它以利用内置选项,或者考虑实现自定义 UI,这绝非易事。通常,bootstrapper application 可以处理复杂的 UI 部分,并启动纯 MSI 包安装。
【讨论】:
是的,这似乎无法实现。似乎 Wix 不支持这一点。感谢您的回复。以上是关于如何在 wix 屏幕/对话框之间插入 C# CA 屏幕/表单的主要内容,如果未能解决你的问题,请参考以下文章