如何在Windows Installer的Custom Action中Sleep

原创 2011年01月17日 17:22:00

项目终于接近尾声,马上就要打包发布了。所以最近在研究Wix 3.5。Wix是一个Free的全脚本打包工具,是和MSI的每个指令一一对应的,所以比较原始,如果你不想很深入的研究MSI,那么你就去用Installer Sheild,这个工具够傻瓜,并且把MSI里面的细节都封装好了,只需按照向导就可以完成打包。

如果你感觉Installer Sheild还是复杂,那就用VS自带的打包工程,这个就更傻瓜了。

如果你想免费,又想精确控制每个安装步骤,并且想在安装完毕后执行些脚本,那么选择WIX 准没错。

我们的产品就是如此,安装比较复杂,并且安装完毕后还要执行一些VBS,所以我们选择了Wix

安装完Wix Visual Studio插件以后,就可以在Windows里面直接编译Wix项目了,其实Wix项目文件就是一个xml文件,说的编译,其实就是针对这个xml文件分析,然后生成MSI文件。

这里就不深入介绍如何编写这个WIX的XML文件啦,我想在这里介绍一个小发现,我先描述一下项目的需求:

1,安装

2,安装完毕后,执行一个脚本,

3,如果是XP系统,需要在脚本内Sleep 3000,然后继续执行

结果发现WIX不支持Sleep,具体的说是因为Custom Action不支持,所以无法Sleep。

在国内外找了一个小时,大家都在抱怨这个问题,但是没什么好的解决方案,其中一个workround是再写一个VBS,然后在Custom Action里面用Wshell.run "sleep.vbs",0, true,来调用。

但是要为此多增加一个vbs到安装包中,感觉很不爽,那有没有更好的方法呢,于是就想有没有Wshell.run "cmd /c xxx", 0, true之类的指令呢?

无意中发现可以通过Ping来解决,其实原理就是ping自己,每次ping的时间间隔大概是1秒所有,加入

 

WshShell.Run "cmd /c ping -n 3 -w 1000 127.0.0.1 >NUL", 0, True

 

打包,运行,没问题!

在看一下ping的参数,-n 3代表的是ping 3次, -w 1000代表是每次ping 的timeout时间, 这样就能让安装程序在这里停上3秒

 

How_To_Custom_Installer

  • 2010年05月03日 01:31
  • 265KB
  • 下载

V【】isualSVN Server】Custom action GenerateSSLKey failed: Command terminated with non-zero exit code

作者:Lianghc  http://blog.csdn.net/zutsoft 安装会弹出如下错误提示对话框:     Custom action GenerateSSLKey failed: ...

Custom Ribbon Action (DownLoad Multiple File) -------------SharePoint 2010

http://www.cnblogs.com/KingStar/archive/2010/10/13/1850034.html Below is a screenshot of my projec...
  • SseJava
  • SseJava
  • 2011年02月24日 10:00
  • 2385

InstallShield的Custom Action

地址:http://www.cnblogs.com/ivybell/ 2012-2-24 静默卸载exe格式的程序 近段时间给用户升级版本,但是旧版本是很早之前的人制作安...
  • wlanye
  • wlanye
  • 2012年07月20日 13:43
  • 3084

Dynamics CRM 利用Profiler来调试custom action

上一篇做了一个铺垫讲解了如何用Profiler来调试插件,本篇就讲讲如何调试自定义action。   打开插件注册器,点击start profiling    这块的配置页就和之前调试plugin不同...

创建与SharePoint 2010风格一致的下拉菜单 (续) 整合Feature Custom Action框架

在上一篇“创建与SharePoint 2010风格一致的下拉菜单”文章中,演示了如何添加一个额外的菜单到页面顶端,并使其的样式风格与SharePoint 2010内置的菜单保持一致。如果只需要创建一个...

WiX Custom Action 的deferred !

WiX  Custom Action  的deferred ! 当使用Custom Action 时,时常会需要按照一定的顺序去执行相应的Custom Action,这时需要使Execute="...

Sharepoint习题——Custom Action

Question16 You plan to add a custom tab to the Ribbon in a SharePoint Web application. You create ...

How to: Create a Custom Action Specific to a List

为列表增加自定义菜单项,可以用content type的方式,在content type中加入custom actcion然后建基于此content type的列表 也可以单独将custom act...

wix custom action

3.1 关于Action     我们已经知道如何生成具有标准安装界面的安装程序了,Windows Installer按照我们的界面设置使用标准的安装步骤进行安装,它的安装过程是由一系列标准的A...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何在Windows Installer的Custom Action中Sleep
举报原因:
原因补充:

(最多只允许输入30个字)