【发布时间】:2009-05-06 14:21:38
【问题描述】:
我需要一个可以构建的完整 WiX 脚本。它有
- 欢迎
- 最终用户许可协议
- 安装文件夹
- 选择当前用户或所有用户安装
- 安装
- 完成
我只需要一个 wxs 文件,因为它用于一个简单的应用程序。我还需要一个选项来为当前用户或所有用户安装它。
【问题讨论】:
我需要一个可以构建的完整 WiX 脚本。它有
我只需要一个 wxs 文件,因为它用于一个简单的应用程序。我还需要一个选项来为当前用户或所有用户安装它。
【问题讨论】:
您是否检查过 Wix3 中内置的 WixUI_Advanced UI?
下面是它的对话框:
【讨论】:
我也使用了 WixUI_InstallDir,但通过在安装程序末尾添加一些“下一步做什么”文本来复制并根据我的需要对其进行调整。我使用this detailed walkthrough 获取常用的 Wix GUI 并为我自己的目的更改了几个屏幕。这确实需要您获取 Wix 源代码,但只是为了获取 Wix 开发人员包含以驱动 WixUI_InstallDir 安装程序的实际 Product.wxs 文件的未编译版本。
所以基本上我在解决方案中有这样的东西(使用 VS 的 Votive 插件):
产品.wxs
<UI>
<UIRef Id="My_InstallDir"/>
</UI>
<!-- Add the customized EULA -->
<WixVariable Id="WixUILicenseRtf" Value="$(var.SolutionDir)\doc\license.rtf" />
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLLOCATION" />
<UIRef Id="My_InstallDir" />
<!-- Add the customized banner logo -->
<WixVariable Id="WixUIBannerBmp" Value="$(var.SolutionDir)\doc\InstallerBanner.bmp" />
<WixVariable Id="WixUIDialogBmp" Value="$(var.SolutionDir)\doc\InstallerSidebar.bmp" />
My_InstallDir.wxs 完全没有改变,除了引用我的退出对话框的那一行,这是我的“下一步做什么”注释所在的位置:
<Publish Dialog="MyExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999">1</Publish>
那么真正的变化是在我显示文本的 My_ExitDialog 中:
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<UI>
<Dialog Id="MyExitDialog" Width="370" Height="270" Title="!(loc.ExitDialog_Title) test">
<Control Id="Finish" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Cancel="yes" Text="!(loc.WixUIFinish)" />
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Disabled="yes" Text="!(loc.WixUICancel)" />
<Control Id="Bitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="234" TabSkip="no" Text="!(loc.ExitDialogBitmap)" />
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Disabled="yes" Text="!(loc.WixUIBack)" />
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
<!--<Control Id="Description" Type="Text" X="135" Y="70" Width="220" Height="40" Transparent="yes" NoPrefix="yes" Text="!(loc.ExitDialogDescription)" />-->
<Control Id="Title" Type="Text" X="135" Y="20" Width="220" Height="60" Transparent="yes" NoPrefix="yes" Text="!(loc.ExitDialogTitle)" />
<Control Id="NextSteps" Type="ScrollableText" X="135" Y="70" Width="220" Height="140" Sunken="yes" TabSkip="no">
<Text SourceFile="$(var.SolutionDir)\doc\GemWebAfterInstall.rtf" />
</Control>
</Dialog>
<InstallUISequence>
<Show Dialog="MyExitDialog" OnExit="success" />
</InstallUISequence>
<AdminUISequence>
<Show Dialog="MyExitDialog" OnExit="success" />
</AdminUISequence>
</UI>
</Fragment>
我知道您正在寻找解决方案,而不是指针。但是,使用我引用的文章作为关键起点,我认为您可以在现成的 WixUI 位中找到您需要的所有部分,或者通过替换小块“开箱即用”的东西就像我一样。祝你好运。
【讨论】: