WiX是Windows Installer
XML的简称,它是用以创建Windows安装包的工具集。它补助命令行环境,开发者可以及将它集成到他们的编译进程中开创MSI和MSM安装包。

越来越多消息方可参照:http://wix.sourceforge.net/

 

多年来商量了弹指间怎么样使用WiX制作具有时间范围的安装包,下图是demo的职能图。

XML 1

形成那个demo首要有两点值得注意:

  1. 选料得当的脚本语言(VBScript or JScript)达成定制操作。

  2. 选拔适宜的实际施行上边的剧本。

 

上边分享本人的落到实处进程:

  1. 福寿无疆一段检查当前时刻是还是不是越界的脚本代码,并将它包裹到CustomAction中。

   
使用VBScript相比较当今日期和范围日期,小于0代表越界,那时调用WScript想注册表添加坏键。

    <CustomAction Id="ValidateTimeLimitCA" Script="vbscript" Execute="immediate" >
      <![CDATA[
      If DateDiff("d", Date, #2011/07/31#) < 0 Then
        Set WShell = CreateObject("WScript.Shell")
        WShell.RegWrite "HKCU\Software\GrapeCity\TimeLimit\DateDiff", 1, "REG_DWORD"
        Set WShell = Nothing
      End If
   ]]>
    </CustomAction>
  1. 慎选适宜的空子执行上述脚本,越早越好。

   
在本文的demo中,作者在PrepareDlg此前实施脚本,对于绝超过一半动静而言,那早正是最早的火候了。当然,你也得以选取在AppSearch在此之前实施。

    <InstallUISequence>
      <Custom Action="ValidateTimeLimitCA" Before="PrepareDlg" />
    </InstallUISequence>
  1. 累加3个RegistrySearch属性,用于第③步提到的坏键。

     <Property Id="TIMELIMIT">
       <RegistrySearch Id="TIMELIMIT_VALUE" Root="HKCU" Key="Software\GrapeCity\TimeLimit" Name="DateDiff" Type="raw" />
     </Property>
    

4.
添加Condition用于检查第2步添加的性格是或不是存在,并在急需的时候弹出错误新闻。

    <Condition Message="This is package is out of date at July 31, 2011">
      Installed OR NOT TIMELIMIT
    </Condition>

 

  1. 达成3个免除操作,用于破除第3步添加的坏键。

     <CustomAction Id="CleanupTimeLimitCA" Script="vbscript" Execute="immediate" >
       <![CDATA[
       Set WShell = CreateObject("WScript.Shell")
       WShell.RegDelete "HKCU\Software\GrapeCity\TimeLimit\"
       Set WShell = Nothing
    ]]>
     </CustomAction>
    

 

6.
在FatalError对话框中公布Finish事件,同时将值设置给第伍步提到的铲除操作。

    <UI>
      <UIRef Id="WixUI_Minimal" />
      <Publish Dialog="FatalError" Control="Finish" Event="DoAction" Value="CleanupTimeLimitCA">1</Publish>
    </UI>

 

到此处就马到功成,代码很不难,希望有价值。

 

源码下载地址如下:

TimeLimit.rar

相关文章

网站地图xml地图