对于Linux软件包,特别是带有存储校验和的RPM,我们总是可以检查两件事:软件包的内容是正确的,从这个软件包的安装是可以的。如果某人修改了部分安装,他就不应该通过运行rpm -Vp my-precious-package
来查看。在我们的忙碌中,不仅建议,而且必须为我们的软件包提供用于此目的的工具,对于Linux而言,这些只是简单的bash脚本。
现在我必须为Windows做类似的事情。基本上我想要的是提供一些批处理文件,通过运行哪一个可以得到保证,安装与它在包中的意图相同。我使用InstallShield进行打包,但它有一些很棒的可视化工具,我仍然没有找到在命令行中验证包校验和的方法。
它是否可能,或者我应该重新发明轮子编写我自己的检查工具?
答案 0 :(得分:2)
在SDK
中查看来自Microsoft的MakeCat和SignToolhttp://msdn.microsoft.com/en-us/library/windows/desktop/aa386967%28v=vs.85%29.aspx http://msdn.microsoft.com/en-us/library/windows/desktop/aa387764%28v=vs.85%29.aspx
答案 1 :(得分:2)
Windows Installer具有一项称为弹性的功能,支持自动修复产品,并且有一些方法可以将其调用以进行自检。 (这是由InstallShield假设您的意思是基于Windows Installer的项目。)
这里有一些阅读链接可以帮助您入门:
INFO: Description of Resiliency in Windows Installer
Application Resiliency: Unlock the Hidden Features of Windows Installer
MsiProvideComponent function(参见dwInstallMode标志)
这也假设所有文件都是密钥文件。配套文件不由安装程序管理。此外,还不会管理安装程序之外的自定义操作所执行的更改。