今天想要用 WixToolset 去做自订的页面了话 (ex:我们要设定系统要修改HelloWorld内的 appsettings.json 某段连接
接下来会谈到3个部分
1.画面部分
2.自订动作
3.自订动作介接画面
这会花几天来介绍
首先来讲画面部分,昨天的页面使用WixUI_InstallDir,
我们现在要对目前的安装包增加系统设定值的页面,
所以我们要拆解并知道WixUI_InstallDir里面的构造,
才能加入其他的页面。
我们从官方的Github内
https://github.com/wixtoolset/wix3/blob/develop/src/ext/UIExtension/wixlib
寻找WixUI_InstallDir.wxs
<UI Id="WixUI_InstallDir">
<TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" />
<TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" />
<TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" />
<Property Id="DefaultUIFont" Value="WixUI_Font_Normal" />
<Property Id="WixUI_Mode" Value="InstallDir" />
<DialogRef Id="BrowseDlg" />
<DialogRef Id="DiskCostDlg" />
<DialogRef Id="ErrorDlg" />
<DialogRef Id="FatalError" />
<DialogRef Id="FilesInUse" />
<DialogRef Id="MsiRMFilesInUse" />
<DialogRef Id="PrepareDlg" />
<DialogRef Id="ProgressDlg" />
<DialogRef Id="ResumeDlg" />
<DialogRef Id="UserExit" />
<Publish Dialog="BrowseDlg" Control="OK" Event="DoAction" Value="WixUIValidatePath" Order="3">1</Publish>
<Publish Dialog="BrowseDlg" Control="OK" Event="SpawnDialog" Value="InvalidDirDlg" Order="4"><![CDATA[NOT WIXUI_DONTVALIDATEPATH AND WIXUI_INSTALLDIR_VALID<>"1"]]></Publish>
<Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999">1</Publish>
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="LicenseAgreementDlg">NOT Installed</Publish>
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg">Installed AND PATCH</Publish>
<Publish Dialog="LicenseAgreementDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg">1</Publish>
<Publish Dialog="LicenseAgreementDlg" Control="Next" Event="NewDialog" Value="InstallDirDlg">LicenseAccepted = "1"</Publish>
<Publish Dialog="InstallDirDlg" Control="Back" Event="NewDialog" Value="LicenseAgreementDlg">1</Publish>
<Publish Dialog="InstallDirDlg" Control="Next" Event="SetTargetPath" Value="[WIXUI_INSTALLDIR]" Order="1">1</Publish>
<Publish Dialog="InstallDirDlg" Control="Next" Event="DoAction" Value="WixUIValidatePath" Order="2">NOT WIXUI_DONTVALIDATEPATH</Publish>
<Publish Dialog="InstallDirDlg" Control="Next" Event="SpawnDialog" Value="InvalidDirDlg" Order="3"><![CDATA[NOT WIXUI_DONTVALIDATEPATH AND WIXUI_INSTALLDIR_VALID<>"1"]]></Publish>
<Publish Dialog="InstallDirDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="4">WIXUI_DONTVALIDATEPATH OR WIXUI_INSTALLDIR_VALID="1"</Publish>
<Publish Dialog="InstallDirDlg" Control="ChangeFolder" Property="_BrowseProperty" Value="[WIXUI_INSTALLDIR]" Order="1">1</Publish>
<Publish Dialog="InstallDirDlg" Control="ChangeFolder" Event="SpawnDialog" Value="BrowseDlg" Order="2">1</Publish>
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="InstallDirDlg" Order="1">NOT Installed</Publish>
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg" Order="2">Installed AND NOT PATCH</Publish>
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Order="2">Installed AND PATCH</Publish>
<Publish Dialog="MaintenanceWelcomeDlg" Control="Next" Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish>
<Publish Dialog="MaintenanceTypeDlg" Control="RepairButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
<Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
<Publish Dialog="MaintenanceTypeDlg" Control="Back" Event="NewDialog" Value="MaintenanceWelcomeDlg">1</Publish>
<Property Id="ARPNOMODIFY" Value="1" />
</UI>
<UIRef Id="WixUI_Common" />
我们将这段程序码替换到我们昨天的安装包上的
这段程序码就好 ↓↓↓
<UI> <UIRef Id="WixUI_InstallDir" /></UI>
而WIXUI_INSTALLDIR参数指定的部分还需要保留 ↓↓↓ 别删掉了!否则会出错给你看
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER" />
建置後,可以发现跟昨天安装包安装顺序是一样的!!!
再来我们了解一下这框架。
而关键字 Control="Back":上一页, Control="Next":下一页
使用Value去衔接上下页的页面名称。
order 了话则是执行的顺序,你可以看到预设InstallDirDlg的next下了很多动作
<Publish Dialog="InstallDirDlg" Control="Next" Event="SetTargetPath" Value="[WIXUI_INSTALLDIR]" Order="1">1</Publish>
<Publish Dialog="InstallDirDlg" Control="Next" Event="DoAction" Value="WixUIValidatePath" Order="2">NOT WIXUI_DONTVALIDATEPATH</Publish>
<Publish Dialog="InstallDirDlg" Control="Next" Event="SpawnDialog" Value="InvalidDirDlg" Order="3"><![CDATA[NOT WIXUI_DONTVALIDATEPATH AND WIXUI_INSTALLDIR_VALID<>"1"]]></Publish>
<Publish Dialog="InstallDirDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="4">WIXUI_DONTVALIDATEPATH OR WIXUI_INSTALLDIR_VALID="1"</Publish>
内容如果是1的,就是一定会显示的意思,
至於LicenseAccepted = "1" 或
CDATA[NOT WIXUI_DONTVALIDATEPATH AND WIXUI_INSTALLDIR_VALID<>"1"
这些已经写好的语法...我个人是这麽认为的
要就要google了,
哈哈,我们先跳过不看他!!!
还想了解详细的元件介绍需要看官方介绍,
https://wixtoolset.org/documentation/manual/v3/xsd/wix/publish.html
或者参考 stoneniqiu
https://www.cnblogs.com/stoneniqiu/p/3363873.html
我参考的文章是很久前写的,
WixToolset 後来将原始码都转到github上面,
今年看时文章内的前往网页就错了,
为了找原始码路径,也花了一阵子查...
有了 UI原始码後,
明天我们就能新增其他自订的页面,
然後加入了!!!
Day6程序码
https://github.com/Aslan7826/defaultMVC/commits/Day06
>>: D-24. attr_accessor 、类别变数与实体变数差异 && Minimum Moves to Equal Array Elements
终於!可以进入真正的爬虫教学啦~ 我们已经有一定的实力来编写Python和分析网页了 今天的影片内容...
我们的验证码小帮手现在可以完成的项目有: 对使用者进行身份验证与绑定 判断使用者的讯息,进而回覆对应...
在Project新增Create→C# Script取名为TrackableEvent 撰写程序码 ...
前一篇说到 该怎麽写 data 的资料,找回双向绑定机制 !!! 这边先小小的补充一下 XD 在 O...
这是一个糊里糊涂忙碌的一周,游戏大抵已完成,剩下一些微调的部分,剪辑影片、制作海报, PPT、发表...