经常安装PC端的应用,特别是重装系统之后,大致分为两类。一类像QQ,搜狗输入法这样的。分三步走的:第一个页面可以自定义安装路径和软件许可。第二个页面显示安装进度条,第三个页面推荐其他应用。先不管人家怎么实现的,我们先回顾一下。

     QQ:

      Wix 安装部署教程(九) --用WPF做安装界面  Wix 安装部署教程(九) --用WPF做安装界面   Wix 安装部署教程(九) --用WPF做安装界面

      再一个就是分六步或七步走的,如QQ影音:欢迎界面,用户许可,安装组件,安装目录,安装进度,安装完成,有七步的,一般会多一些软件推荐。当然还有其他的,比如是基于ClickOnce打包的,就一个界面,一个进度条。没有安装目录选择,这一般不是商业软件。先说第二种,上一步下一步的有很多第三方的打包工具,比较有名的有InstallShield,setupfactory等,看似有了图形化的操作界面,做简单的还可以,但是要是有一些自定义的部分就比较麻烦,因为你没地方改,比如你要在一个安装包中去静默的触发另一个安装包悄悄的安装,而且这些还是商业化的。开源的WIX,基于XML文件配置的方法来打包应用。Wix的基本打包(6,7个步骤),可以出门左拐可以看我之前的教程。接下来要说的,是基于WIX的Bootstrapper工程用WPF接入安装界面。

    WIX是基于BootstrapperCore.dll提供UI扩展的,你可以使用WPF,也可以使用Winform作为安装界面。而这里先不得不先说其中的两个对象。一个是Engine,它提供了最根本的安装方法,如Detect,Plan,Apply和Quit等,另外一个就是引导对象BootstrapperApplication,他提供了安装相关事件,设置窗体对象等。这为我们自定义界面的时候控制安装包提供了基础。

    一、工程准备

   1)新建一个Bootstrapper工程。

    Wix 安装部署教程(九) --用WPF做安装界面

   新建完成之后会有一个Bundle.wxs文件,里面包含你要安装的msi文件和依赖组件比如.net4.0.  

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"  xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension"  xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
  <Bundle Name="WIXTest" Version="1.1.1.0" Manufacturer="Delta" UpgradeCode="{51C1EB78-C0D2-4C30-803C-8D7993CB38A5}"    Compressed="yes"    >

    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense"   /> 

     
    <WixVariable Id="WixMbaPrereqLicenseUrl" Value=""/>
    <WixVariable Id="WixMbaPrereqPackageId" Value=""/>
   

    <Chain DisableRollback='yes'>
      <PackageGroupRef Id="Netfx4Full"  />
          <MsiPackage Id="DIAView" SourceFile="D:\TestWix\bin\Debug\zh-cn\TestWix.msi" Compressed="yes"  DisplayInternalUI="yes" >
             </MsiPackage>
    </Chain>
  </Bundle>

  <Fragment>
    <util:RegistrySearchRef Id="NETFRAMEWORK40"/>
    <PackageGroup Id="Netfx4Full">
      <ExePackage
          Id="Netfx4FullExe"
          Cache="no"
          Compressed="yes"
          PerMachine="yes"
          Permanent="yes"
          Vital="yes"
          SourceFile="$(var.Dia)dotNetFx40_Full_x86_x64.exe"
          InstallCommand="/q /norestart "
          DetectCondition="NETFRAMEWORK40"
          DownloadUrl="http://go.microsoft.com/fwlink/?LinkId=164193"/>
    </PackageGroup>
  </Fragment>
</Wix>
View Code

相关文章:

  • 2021-07-20
  • 2022-12-23
  • 2021-12-18
  • 2021-09-28
  • 2022-02-02
  • 2021-08-30
猜你喜欢
  • 2021-06-21
  • 2021-10-26
  • 2021-11-20
  • 2021-06-29
  • 2022-01-02
相关资源
相似解决方案