Add UI to an Installer

接上回说道,那个太简单的Installer安装起来太快了...一闪而过,用户顶多看到个Title,其他的什么都看不到,更别说参与:这是个问题,很大的问题,总得告诉用户他正在装的是啥东东,装些什么,装的时候是个什么状态或者进度!我们又不是流氓软件~

 

那怎么给installer加上UI呢?很简单:

UI Wizardry
代码
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    
<Product Id="e6ecf2a7-b03c-4b3f-ace8-6179ab62e4c7" Name="WixProject" Language="1033" Version="1.0.0.0" Manufacturer="WixProject" UpgradeCode="b3d503b8-4f21-4116-8562-6ff1e0e16a28">
        
<Package InstallerVersion="200" Compressed="yes" />

        
<Media Id="1" Cabinet="media1.cab" EmbedCab="yes" />

        
<Directory Id="TARGETDIR" Name="SourceDir">
            
<Directory Id="ProgramFilesFolder">
                
<Directory Id="INSTALLLOCATION" Name="WixProject">
                    
<!-- TODO: Remove the comments around this Component element and the ComponentRef below in order to add resources to this installer. -->
                     
<Component Id="ProductComponent" Guid="266b1212-45bf-4b65-a31a-29c3bdc43e20">
             
<File Id="WindowsFormsApplication" Source="$(var.SolutionDir)\WindowsFormsApplication\$(var.OutDir)\WindowsFormsApplication.exe" />
                     
</Component> 
                
</Directory>
            
</Directory>
        
</Directory>

        
<Feature Id="ProductFeature" Title="WixProject" Level="1">
            
<!-- TODO: Remove the comments around this ComponentRef element and the Component above in order to add resources to this installer. -->
             
<ComponentRef Id="ProductComponent" /> 
        
</Feature>

    
<UIRef Id="WixUI_Mondo"/>
    
    
</Product>
</Wix>

关键就在那句:

<UIRef Id="WixUI_Mondo"/>

 

还没完:

继续1) Add Reference...,给WixProject加上WixUIExtension (C:\Program Files\Windows Installer XML v3\bin\WixUIExtension.dll)

2) 编译,纠错,最后打开$(SolutionDir)\WixProject\$(OutDir)\WixProject.msi测试!

3) 看到UI了吧,是不是比以前用户体验好一点儿了?只可惜...不能指定安装目录,甚至没机会给我们选择!

欢迎界面

协议界面

安装界面

安装结束界面

4) 而且那个License和那些Icon貌似都不是我们想要的,以后得把他们一一替换掉!

 

不仅仅这些,WixUIExtension还给我们提供了更多选择:

<Property Id="WIXUI_INSTALLDIR" Value="INSTALLLOCATION" />
<UIRef Id="WixUI_InstallDir"/>
注意1) <Property Id="WIXUI_INSTALLDIR" Value="INSTALLLOCATION" />是必须要的,否则会产生Error,就在跳到那个"选择安装目录"的UI前.
2) 不能同时添加两个UIRef,会出错的!

目标文件夹界面


还有3个,自己试试看吧~

<UIRef Id="WixUI_FeatureTree" />
<UIRef Id="WixUI_Minimal" />
<Property Id="ApplicationFolderName" Value="WiX Sample Application" />
<Property Id="WixAppFolder" Value="WixPerUserFolder" />
<UIRef Id="WixUI_Advanced" />


声明这几个变量,可以实现替换自定义的License,Banner和Icon,我这里就不演示了~
WixVariable
<WixVariable Id="WixUILicenseRtf" Value="Media\License.rtf" />
<WixVariable Id="WixUIBannerBmp" Value="Media\banner.bmp" />
<WixVariable Id="WixUIDialogBmp" Value="Media\dialog.bmp" />
<WixVariable Id="WixUIExclamationIco" Value="Media\exclamation.ico" />
<WixVariable Id="WixUIInfoIco" Value="Media\information.ico" />
<WixVariable Id="WixUINewIco" Value="Media\new.ico" />
<WixVariable Id="WixUIUpIco" Value="Media\up.ico" />


OK,如果你每个都试做了,是不是立即会感觉到原来依旧太简单啦!?

建议大家再试试,从UI上进行Repair/Remove,再从appwiz.cpl或者右键MSI进行修复/卸载~

posted @ 2009-12-20 20:17  shalahu  阅读(1156)  评论(0编辑  收藏  举报