将页面添加到安装程序-Wix Toolset

时间:2020-04-10 10:53:48

标签: c# wix

我正在寻找一种通过自己的界面向安装程序添加新页面的方法。最终,我希望安装程序依次执行许多操作,使用户可以转到下一页并检查或设置后续配置。

但是目前,我正在寻找如何添加一个在安装之前运行的附加页面,并检查计算机是否具有安装该应用程序所需的程序。我想将我准备好的代码附加到c#上,以检查这些程序是否安装在给定的计算机上。

通过使用本教程: https://www.youtube.com/watch?v=6Yf-eDsRrnM&t=7195s 我创建了安装程序的基本版本。在本教程中,我们使用WixUI_Minimal创建安装程序。

我仔细阅读了文档,发现可以创建自己的页面,但找不到任何地方。例如那里 https://wixtoolset.org/documentation/manual/v3/wixui/ 是“自定义内置WixUI对话框集”,但是它们没有显示该如何做。

3 个答案:

答案 0 :(得分:2)

更新2020年4月21日

我创建了一个公开的GitHub Gist,它解释了步骤,甚至还包括一个自定义对话框PrerequisitesDlg.wxs,该对话框最多包含 5 个先决条件,可以将其配置为WiX属性(文字和条件)。整个序列都包裹在WixUI_KargWareFeatureTree.wxs中。

2020年4月20日之前的文本

您需要的元素是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,但您可以选择其他所有内容,甚至可以从头开始。

  1. 从GitHub下载WixUI_Advanced.wxs
  2. wxs文件复制到msi-project的根目录(放置* .wixproj的位置),并将其命名为例如MyWixToolsetPages.wxs
  3. name内编辑UI xml元素的MyWixToolsetPages.wxs(第50行附近)
  4. MyWixToolsetPages.wxs添加到您的wixproject
  5. UIRef中的product.wxs参考元素替换或添加到<UIRef Id="WixUI_MyWixToolsetPages"/>
  6. 将您的新对话框添加为<DialogRef Id="myNewPage" />
  7. 使用Control下一步/返回和事件NewDialog自定义页面的顺序
  8. 请注意在两个方向(下一个,下一个,下一个,结束)和(结束,后退,后退,后退)两个方向上测试序列

将{{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 创建者。它是bootstrapperchainerdownloaderinstalleretc...的构造。 Hello-Burn sampler here。还有replacing Burn's default GUI


WiX MSI GUI :我这里有一个有关如何更改MSI安装程序GUI的简约示例:https://github.com/glytzhkof/all/tree/master/WiXCustomDialogzip 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表中插入其他行,从而导致现有路径被覆盖。

https://github.com/iswix-llc/iswix/blob/master/Application/IsWiXNewAddIn/MSISolutionTemplate/SetupProjectTemplate/UI.wxs

https://github.com/iswix-llc/iswix/blob/master/Application/IsWiXNewAddIn/MSISolutionTemplate/SetupProjectTemplate/UI-CustomDialog.wxs