【问题标题】:Replace a file in an uncompressed setup替换未压缩设置中的文件
【发布时间】:2015-06-29 10:28:34
【问题描述】:

使用 InstallShield,我创建了一个基本 MSI 设置,其文件未压缩
现在我想替换设置中的一个文本文件,而无需再次重建 MSI。
运行安装、卸载等时是否可以无忧无虑地完成?
是否有某种大小\ CKSUM 检查将 msi 中的数据与实际文件进行比较?

或者使用 ORCA 编辑 MSI 并将此文件从文件表中删除会更可靠?

谢谢

【问题讨论】:

    标签: windows-installer orca


    【解决方案1】:

    您应该能够通过使用名为 MsiFiler 的工具来做到这一点。 替换您提取的图像中的文件,然后按照如下所述运行 MsiFiler:

    https://msdn.microsoft.com/en-us/library/aa370108(v=vs.85).aspx

    另一种方法是使用 msi2xml 和 xml2msi 之类的工具来重建您的 msi 包。 这里有很多例子:

    How to replace a file in a msi installer?

    希望对你有帮助

    【讨论】:

    • 但是如果文件未压缩怎么办?替换文件是否安全? InstallShield \ MSI 是否以某种方式保存文件 size\date\checksum 并将信息与正在安装的文件进行比较?
    • @Epligam:应该没问题。您应该能够使用 Windows 安装程序 SDK 中名为 MsiFiler.exe 的工具更新文件表和 MsiFileHash 表中文件的属性。这能解释你的问题吗?
    • 回到这个老问题,如果我只想替换一个已经解压的文件,是否需要使用这个工具?这是一个没有 .pdf 和 .txt 等版本的文件。
    • @Epligam 是的,您需要这样做,因为对于未版本控制的文件,哈希值保存在 MsiFileHash 表中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-21
    • 1970-01-01
    • 1970-01-01
    • 2013-11-16
    • 1970-01-01
    相关资源
    最近更新 更多