编辑:原来这个神秘字符串是一个简单的MD5哈希文件名(包括扩展名和大小写)。
我正在尝试通过InstallShield自动创建链式MSI的过程。在GUI中,这涉及到Releases
,添加链式包,链接到MSI并将文件流式传输到项目中。
我通过将项目文件分析为XML来逆向设计幕后发生的事情。它基本上只归结为表格编辑。我了解您可以使用Windows Installer Automation打开*.ism
文件并访问数据库表(LINK)。
然而,ISChainPackageData表中只有一个字段,我似乎无法生成或弄清楚它是如何计算的。这是标题为File
的专栏。它是一个32字符的十六进制字符串,后面是下划线。我发现确定此字段的唯一属性是要流式传输的MSI文件的名称。例如:
以Test.msi
的名称链接到已链接的MSI,产生_29B31F67F21C9EE77CBF8C4C5D24ACE9
。
更改名称会改变这一点。更改文件,包括用同名的空文件替换它,不会。
我相信这是名字的某种简单哈希,但我没有运气猜测它。
有没有人对他们在这里使用的内容有任何见解?
谢谢!
答案 0 :(得分:1)
关闭。它是一些基于哈希的GUID,是几件事的组合。我必须跋涉代码才能找到确切的内容,但它至少是相对路径和文件名,并且可能与相关软件包有关(可能是其主键值)。
这用于为包含的每个文件生成唯一键,而不允许重复文件。 (Windows Installer不喜欢其主键中的反斜杠。)这里的实际值没有意义;如果您小心避免重复键并且不重叠文件路径和名称组合,则可以输入您喜欢的任何有效键值。但是,这可能会阻止IDE自身检测重复项。