Vista won't show file version unless extension is changed to DLL

G

Guest

Please try this yourself: rename a DLL to a different extension (such as
..asdf). Watch the Version tab disappear under the file's Properties. If you
switch the extension back, suddenly Vista recognizes the version
specification. Why is Vista ignoring file versions for custom file
extensions??

We deal extensively with clients using older version of our files, so we
need to be able to easily see the versions.

However, since upgrading from XP to Vista, the file version (accessed by
going to the file's Properties and selecting the Version tab) is no longer
shown. There isn't even a version tab anymore! If you try adding a "File
Version" column in Details view, it also doesn't show up.

The only way to get the file version to show up is to change the file's
extension to DLL. Then suddenly the version tab appears, and the DLL also
shows its version in Details view.

With XP, we never had this problem. If a file had a version specified, it
was shown.

Try it yourself in Vista! Rename a .DLL file to .ASDF and try to find the
file's version. Now try it in XP and see how simple it is.

This happens even under Administrator login.
 
M

Michael Solomon

anon0918 said:
Please try this yourself: rename a DLL to a different extension (such as
.asdf). Watch the Version tab disappear under the file's Properties. If
you
switch the extension back, suddenly Vista recognizes the version
specification. Why is Vista ignoring file versions for custom file
extensions??

We deal extensively with clients using older version of our files, so we
need to be able to easily see the versions.

However, since upgrading from XP to Vista, the file version (accessed by
going to the file's Properties and selecting the Version tab) is no longer
shown. There isn't even a version tab anymore! If you try adding a "File
Version" column in Details view, it also doesn't show up.

The only way to get the file version to show up is to change the file's
extension to DLL. Then suddenly the version tab appears, and the DLL also
shows its version in Details view.

With XP, we never had this problem. If a file had a version specified, it
was shown.

Try it yourself in Vista! Rename a .DLL file to .ASDF and try to find the
file's version. Now try it in XP and see how simple it is.

This happens even under Administrator login.

You might actually find a solution about how to deal with this in the MSDN
newsgroups as they are usually well populated with app developers:
http://msdn.microsoft.com/newsgroups/default.aspx
 
C

cquirke (MVP Windows shell/user)

On Wed, 8 Aug 2007 09:52:02 -0700, anon0918
Please try this yourself: rename a DLL to a different extension (such as
.asdf). Watch the Version tab disappear under the file's Properties. If you
switch the extension back, suddenly Vista recognizes the version
specification. Why is Vista ignoring file versions for custom file
extensions??

Because arbitrary file extensions are not supposed to have version
tabs (or more specifically, the same structure as code files, which
define such tabs). This, IMO, is a Good Thing.

The extension is what you see, and what you use to assess the
potential behavior of a file. In essence, you assess the risk of a
file according to its type, as shown by the extension.

A file that mis-represents its type by using the wrong extension
should IMO be considered highly suspect. Code is the most dangerous
of file types. Even when not run as code, the processing of
type-specific material (such as displaying a version tab) exposes
internal surfaces of the OS that could contain exoploitable defects.
We deal extensively with clients using older version of our files, so we
need to be able to easily see the versions.

Then I would keep the appropriate extensions, and break the name of
the file (e.g. Blah.dll -> Blah3409.dll rather than Blah.dll ->
Blah.xyz). As implied in the example, you could append the build
number to the name and this save yourself a rt-click ;-)

Note that when you rename a file in this way, the registry can track
the change, if that file is referenced from there.

More to the point; note that invalidating the extension doesd not
always break the ability of the code to run, when referenced via a
self-corrected registry setting.

For example, if you rename WScript.exe to WScript.ex! from within
Win98, not only may you see WScript.ex! as the new action command line
for .WSH, .VBS, .JS etc. files, but these files will still "open" just
fine, even though .EX! is not a correct executable extension.
With XP, we never had this problem. If a file had a version specified, it
was shown.

Looks like XP was taking greater risks than Vista, in this case.

I approve of the change ;-)

-- Risk Management is the clue that asks:
"Why do I keep open buckets of petrol next to all the
ashtrays in the lounge, when I don't even have a car?"
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top