首页 > 解决方案 > Windows 安装程序:哪些文件被视为“版本化”

问题描述

Windows 安装程序文档对“版本化”和“非版本化”文件进行了很多引用(例如,参见thisthis)。但是,我无法找到哪些文件被视为“版本化”或“非版本化”。

我知道 PE 格式的文件(例如 .dll 和 .exe 文件)被认为是版本化的,并且版本是从嵌入在这些文件中的 VersionInfo 资源中读取的。

其他文件呢,例如 TTF 字体文件?这些文件确实有一个可以被 windows 识别的版本头(例如在 fontview 和 windows explorer 中),但它与 PE 文件不同。

msi 如何确定文件是版本化的还是非版本化的?仅基于扩展名?还是尝试读取已知的标头/资源?这些受支持的扩展名(或文件格式)是否记录在任何地方?

标签: wixwindows-installerinstallshield

解决方案


Windows Installer 支持来自 PE versioninfo 资源和 TTF 字体标头的版本信息。未使用扩展名。该MsiGetFileVersion函数提供了一个公共 API 来执行与 MSI 在内部执行的相同版本检查。


推荐阅读