获取MSI包中包含的文件的校验和

时间:2013-07-17 11:56:37

标签: c# hash windows-installer

是否有可能使用 Microsoft.Deployment.WindowsInstaller Microsoft.Deployment.WindowsInstaller.Package dll,使用programmaticaly(C#)获取MSI包中包含的文件的哈希值。 ?

我使用此方法获取文件:How can I resolve MSI paths in C#?

不要将文件提取到FS上,我想使用C#代码获取文件的哈希值。

有可能吗?

1 个答案:

答案 0 :(得分:2)

Windows Installer包含MsiFileHash table。它在构建时填充,文件表中的所有文件都有128位哈希值。 InstallPackage Files属性返回InstallPathMap对象的字典。此集合的键具有File表中的File键,可用于查询MsiFileHash以获取哈希值。

如果您需要计算已安装文件的哈希值以与此存储的哈希值进行比较,则Microsoft.Deployment.WindowsInstaller中的Installer类具有对基础MsiGetFileHash function进行分类的GetFileHash方法。