PR# 13486 Version Info is not embedded into Windows Exe or DLL

Problem Report Summary
Submitter: peter_gummer
Category: EiffelStudio
Priority: Medium
Date: 2007/10/21
Class: Bug
Severity: Serious
Number: 13486
Release: 6.0.6.9618
Confidential: No
Status: Analyzed
Responsible:
Environment: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.8) Gecko/20071008 Firefox/2.0.0.8
Synopsis: Version Info is not embedded into Windows Exe or DLL

Description
I've tried this with both a classic Windows exe and a .NET DLL.

In Project Settings, I set the target's Version (major number, company, copyright, etc.).

After finalizing, I expect to be able to right-click on the exe or DLL in Windows Explorer, select Properties, and see a "Version" tab in the Properties window. The Version tab isn't there.

It looks like the version info supplied in the Project Settings is discarded.
To Reproduce

										
Problem Report Interactions
From:manus_eiffel    Date:2007/12/26    Download   
A quick comment to say that Windows Explorer is clueless about .NET assemblies. When C# or VB assemblies display that in Windows Explorer, it is because the .exe or .dll has a native resource section like the one Larry described.

I think we can do it for .NET, but some research has to be done on how to do it properly.

From:peter_gummer    Date:2007/12/26    Download   
To get the version to appear for a .NET DLL, I tried adding this to the indexing clause of the project's root class:

	assembly_metadata:
		create {ASSEMBLY_FILE_VERSION_ATTRIBUTE}.make ("1.4.1.444") end

According to Reflector, the attribute is in there:

	[assembly: AssemblyFileVersion("1.4.1.444")]

But I still don't get a Version tab in Windows Explorer.

From:peter_gummer    Date:2007/12/26    Download   
That's working, Larry. Thanks for figuring that out: it saved me the trouble of having to figure it out for myself.

It doesn't work for a .NET DLL, however. I can research that myself, but do you have a solution for that already?

From:larryl    Date:2007/12/11    Download   
Hi, Manu,

The way to embed version info into our ex.exe is here:

http://msdn2.microsoft.com/en-us/library/aa381058.aspx

I have tested with attached `ec.rc'. Successfully got the a version information embedded `ec.exe' as shown in attached snapshot. 

Then we can have Version Info embedded ec.exe from now on. :)

Thanks,
Larry

Attachment: ec.rc     Size:2242
Attachment: 12_11_2007 05_56 PM.png     Size:48925
From:peter_gummer    Date:2007/10/21    Download   
If it's only for .NET, then in order to avoid confusion, it should be categorised under .NET.

From:manus_eiffel    Date:2007/10/21    Status: Analyzed    Download   
On classic, it is indeed not applicable. It was added for .NET systems where you can specify it, however it won't show in explorer. It is only for the .NET runtime  so that it can load the right version of the assembly.