用什么安装包制造工具,可以实现安装包的完整性检查

用什么安装包制作工具,可以实现安装包的完整性检查
当前有个需求,要求对安装包的完整性进行MD5校验,想到的实现方式如下:
对当前的安装包(为方便区分,记为包1)再打一次包(记为包2),在包2的安装脚本中,增加对解包后的MD5完整性检查,如果检查通过,则在安装完成界面中,调用执行包1,此时即安装包1. 如果是检查MD5失败,则弹出提示框后,自动退出。采用inno setup打包工具做了一下,但是没法实现,主要问题在于:要检查MD5,则必须先解压出包装,此时,inno setup认为已经安装成功,如果MD5校验失败,可以弹出提示框,但无法自动退出(abort无效,用taskkill命令也无效),

请教一下,有没有其它安装包制作软件可以实现此功能?最好是有制做成功的先例

------解决方案--------------------
NSIS 默认开启自校验。如果安装包被修改,则弹出 NSIS Error 的提示。
------解决方案--------------------
其实,自己写一个安装程序也不是特别难的。。。
无非就是拷贝文件,写注册表
你真有校验MD5这种需求,大不了自己写一个

另外,InnoSetup支持pascal语言脚本,是比较高级的用法,可以查一下能不能通过代码实现你说的校验功能
------解决方案--------------------
NSIS有CRC校验。

如果不想用它的提示也可以自己写个dll,它可以调用第三方dll。
------解决方案--------------------
我感觉installshield这个安装软件比较好,应该有你说的功能,但我没用过
------解决方案--------------------
一些下载的程序,带md5的结果,由用户自己来校验。也避免打安装包时造假。
程序本身的完整性,可以加壳来保护。不过这些都没太大意思,象xp操作系统都被ghost多个版本,QQ修改版更是众多,所以在程序本身简单做安装包就行了,一般是程序运行后再联网检查完整性和是否被破解等,比如网游。
------解决方案--------------------
如果你要验证每个释放出来的文件的 MD5,NSIS 也有插件可以实现。
------解决方案--------------------
NSIS 也有插件可以实现。