Windows 安装程序:考虑了哪些文件 "versioned"

Windows Installer : Which files are considered "versioned"

windows 安装程序文档多次引用 "versioned" 和 "nonversioned" 文件(例如,参见 this or this)。但是,我找不到 哪些 文件被认为是 "versioned" 或 "nonversioned"。

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

其他文件呢,例如 TTF 字体文件?这些文件确实有 windows 可以识别的版本 header(例如在 fontview 和 windows 资源管理器中),但它与 PE 文件不同。

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

Windows 安装程序支持来自 PE 版本信息资源和 TTF 字体的版本信息 headers。不使用扩展名。 MsiGetFileVersion 函数提供 public API 来执行 MSI 内部执行的相同版本检查。