Windows安装程序文档对“版本”和“非版本”文件进行了很多引用(例如,请参见this或this)。但是,我在任何地方都找不到哪些文件被视为“版本”或“非版本”。
我知道PE格式的文件(例如.dll和.exe文件)被视为版本控制,并且从这些文件中嵌入的VersionInfo资源读取该版本。
其他文件(例如TTF字体文件)呢?这些文件确实具有Windows可以识别的版本标头(例如,在fontview和Windows Explorer中),但是它与PE文件不同。
msi如何确定文件是版本还是非版本?仅基于扩展名?还是尝试读取已知的标头/资源?那些受支持的扩展名(或文件格式)是否记录在任何地方?
答案 0 :(得分:2)
Windows Installer支持来自PE versioninfo资源和TTF字体标题的版本信息。该扩展名未使用。 MsiGetFileVersion
函数提供了一个公共API,以执行与MSI内部相同的版本检查。