我正在寻找一种通过自己的界面向安装程序添加新页面的方法。最终,我希望安装程序依次执行许多操作,使用户可以转到下一页并检查或设置后续配置。
但是目前,我正在寻找如何添加一个在安装之前运行的附加页面,并检查计算机是否具有安装该应用程序所需的程序。我想将我准备好的代码附加到c#上,以检查这些程序是否安装在给定的计算机上。
通过使用本教程:
https://www.youtube.com/watch?v=6Yf-eDsRrnM&t=7195s
我创建了安装程序的基本版本。在本教程中,我们使用WixUI_Minimal
创建安装程序。
我仔细阅读了文档,发现可以创建自己的页面,但找不到任何地方。例如那里 https://wixtoolset.org/documentation/manual/v3/wixui/ 是“自定义内置WixUI对话框集”,但是它们没有显示该如何做。
答案 0 :(得分:2)
我创建了一个公开的GitHub Gist,它解释了步骤,甚至还包括一个自定义对话框PrerequisitesDlg.wxs
,该对话框最多包含 5 个先决条件,可以将其配置为WiX属性(文字和条件)。整个序列都包裹在WixUI_KargWareFeatureTree.wxs
中。
您需要的元素是UIRef Element, Wix Toolset v3 Documentation。
Wix Toolset是一个开源项目,因此您可以在GitHub, Wix Toolset v3上对其进行审查。
Source Code of the Default UI-Dialoges of Wix ToolSet在此处列出了嵌入在Wix工具集中的对话框。我会使用WixUI_Advanced
,但您可以选择其他所有内容,甚至可以从头开始。
wxs
文件复制到msi-project的根目录(放置* .wixproj的位置),并将其命名为例如MyWixToolsetPages.wxs
name
内编辑UI xml元素的MyWixToolsetPages.wxs
(第50行附近)MyWixToolsetPages.wxs
添加到您的wixproject UIRef
中的product.wxs
参考元素替换或添加到<UIRef Id="WixUI_MyWixToolsetPages"/>
<DialogRef Id="myNewPage" />
Control
下一步/返回和事件NewDialog
自定义页面的顺序将{{1}中的<UI Id="WixUI_Advanced">
更改为<UI Id="WixUI_MyWixToolsetPages">
(从原始MyWixToolsetPages.wxs
复制)
WixUI_Advanced.wxs
将...
<UI Id="WixUI_MyWixToolsetPages">
...
内的UIRef
替换为
product.wxs
答案 1 :(得分:1)
总体建议 :从IT时代开始,通常不适合您的设置GUI。特别是 最好在应用程序启动时按用户配置。
经验法则 :您应将setup-GUI限制为真正共享的设置,这些设置需要以管理员身份或具有较高权限的方式编写 每台机器的位置(普通用户无法访问)。设置应用程序启动后的所有其他内容。这也可以帮助质量检查人员进行测试。
刻录 :刻录是WiX工具包的
setup.exe
创建者。它是bootstrapper
,chainer
,downloader
,installer
,etc...
的构造。 Hello-Burn sampler here。还有replacing Burn's default GUI。
WiX MSI GUI :我这里有一个有关如何更改MSI安装程序GUI的简约示例:https://github.com/glytzhkof/all/tree/master/WiXCustomDialog(zip version here)。这是嵌入在实际MSI中的GUI。 GUI还有其他可能性。
GUI :您可以用Burn setup.exe
中的GUI替换每个MSI内部的GUI。 There are some details here。您可以将此GUI作为正常的可执行文件来实现,并带有所有允许的功能。 MSI GUI是基本的并且很旧。 There is another answer here on how to change installer GUI。
答案 2 :(得分:1)
我维护一个开源的wix创作工具,使您可以通过取消注释一行XML来做到这一点。诀窍是在ControlEvent表中插入其他行,从而导致现有路径被覆盖。