在Windows 7中,似乎只有.dll
/ .exe
文件才能在“属性”对话框中查看文件的版本号。如果文件扩展名是.ax
,则不会显示文件的版本号。
我可以更改任何设置以启用.ax
文件设置吗?
在Windows 7中,似乎只有.dll
/ .exe
文件才能在“属性”对话框中查看文件的版本号。如果文件扩展名是.ax
,则不会显示文件的版本号。
我可以更改任何设置以启用.ax
文件设置吗?
Answers:
Windows可执行文件格式(包含在EXE和DLL扩展名的文件中)具有专门保存该元数据的能力。对于任何其他文件类型,这不仅需要具有该元数据的文件格式,而且还要求Windows资源管理器知道如何获取该元数据。例如,当您在Windows 7中单击ODT文件时,除非您已安装OpenOffice.org或LibreOffice(它们注册了Windows资源管理器用来显示信息的组件)的组件,否则不会显示有关该文件的信息。和资源管理器窗口中的标题。
您提出的问题非常神秘。
我在下面列出了我所做的事情,尽管没有真正的答案,但这只是一个推测。
如您所说,尽管.ax代表实现编解码器的dll,但仅为.dll显示“文件版本”,而不为.ax显示。
我已将.ax重命名为.dll,令我惊讶的是,现在在“属性”和弹出窗口中都显示了“文件版本”,而以前没有显示。
下一站是在注册表中,尝试比较HKEY_CLASSES_ROOT\.dll
用HKEY_CLASSES_ROOT\.ax
。另一个惊喜: HKEY_CLASSES_ROOT\.ax
不存在。
啊,哈!我立即出口HKEY_CLASSES_ROOT\.dll
,取代了所有出现dll
的ax
,重新导入回注册表,并验证是否存在
HKEY_CLASSES_ROOT\.ax
,现在相同HKEY_CLASSES_ROOT\.dll
。
结果:绝对没有。资源管理器仍拒绝显示.ax的“文件版本”。
另一个:要尝试强制浏览器显示“文件版本”,请右键单击其列标题,选择“更多...”,然后选中“文件版本”。结果:.ax不会显示版本,除非将其重命名为.dll或.exe。
我能提供的唯一结论是,“文件版本”的显示内置于Explorer程序本身中,用于知名的可执行文件扩展名,这些扩展名只有.dll和.exe。
不幸的是,在编制此列表时,Microsoft完全忘记了.ax,也完全忘记了.scr(用于屏幕保护程序的dll)。
(所有测试均在Windows 7下完成。)
我不知道它是否可以与.ax文件一起使用,但是来自Sysinternals的Sigcheck是我用来在命令提示符下显示可执行(exe / DLL)版本和说明的工具。试试看,只有114KB。
Edit
Sigcheck也适用于.ax文件。样本输出:
sigcheck -a CoreAVCDecoder.ax
Sigcheck v1.71 - File version and signature viewer
Copyright (C) 2004-2010 Mark Russinovich
Sysinternals - www.sysinternals.com
C:\Program Files\CoreCodec\CoreAVC Professional Edition\CoreAVCDecoder.ax:
Verified: Unsigned
File date: 1:26 AM 12/19/2009
Publisher: CoreCodec
Description: CoreAVC DirectShow Video Decoder
Product: CoreAVC Video Decoder
Version: 2.0.0
File version: 2.0.0
Strong Name: Unsigned
Original Name: CoreAVCDecoder.ax
Internal Name: CoreAVCDecoder
Copyright: Copyright ⌐ 2005-2009 CoreCodec, Inc.
Comments: http://www.coreavc.com
编辑2:
为了清楚起见,并非所有的DLL / Exe都包含用于存储版本信息的WinPE资源块。如果是这种情况,这些文件将不会显示“版本”标签。您可以使用Sigcheck进行确认。如果Sigcheck无法显示文件的版本信息,则意味着特定文件没有适当的资源块。