Building an assembly this AssemblyInfo.cs file.

[assembly: AssemblyVersion("1.0.*")] 
[assembly: AssemblyFileVersion("2.0.4")] 
[assembly: AssemblyInformationalVersion("2.0.0-myinfo")]

Where do these version go

But where canthe [AssemblyVersion] be found, that was set to 1.0.* ? Using something like dotPeek allows you to view this version number:

In the NuGet package explorer you’ll see all 3 versions show up.

Important note:

When strong naming an assembly, the AssemblyVersion is REALLY important when referencing from another assembly. Because the CLR loader will look only for that specific version that was used to compile the application with.

If the version number of the referenced assembly has changed and the referencing application has not been recompiled you’ll get a FileLoadException. That’s how MS does it for in place updates of the CLR assemblies, the file version stays the same.

Unhandled Exception: System.IO.FileLoadException: Could not load file or assembly 'VersionAttributesBlackhole, Version=1.0.5281.23150, Culture=neutral, PublicKeyToken=354d3ad428f0bad5' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT:0x80131040) at ConsoleApplication1.Program.Main(String[] args)

Other resources: