How do AssemblyInfo attributes map to Win32 VERSIO

2019-01-24 10:29发布

问题:

When you view the properties for a binary file that contains a VERSIONINFO resource, Windows adds a "Version" tab, which displays that information.

Is there a list of which .NET assembly attributes map to which VERSIONINFO fields, so we can control these easily for our .NET assemblies?

回答1:

Concerning the "fixed Info":

PRODUCTVERSION and FILEVERSION are set from [AssemblyInformationalVersion] and [AssemblyFileVersion] respectively.

FILEOS, FILETYPE are most likely set by the compiler.

Concerning the Var File Info

[AssemblyCulture] maps to "Translation" (I guess!)

Concerning the String File Info

[AssemblyCompany] maps to "CompanyName"
[AssemblyDescription] maps to "Comments"
[AssemblyFileVersion] maps to "FileVersion"
[AssemblyTitle] maps to "FileDescription"
[AssemblyInformationalVersion] maps to "ProductVersion"
[AssemblyProduct] maps to "ProductName"
[AssemblyCopyright] maps to "LegalCopyright"

I think "InternalName" and "OriginalFile" are set to the name of the DLL or EXE, respectively.



回答2:

The [AssemblyFileVersion] attribute (among others) does this, I believe - for example:

[assembly:AssemblyFileVersion("1.2.3.4")]

You should be able to find this setting in the default AssemblyInfo.cs file generated by the IDE; if not, declare it yourself (as above).

You might also want to look generally at the "Assembly Information..." dialog in project properties, which provides access to this and others.