vb.netversioningassemblyinfoassemblyversionattributeassemblyfileversion

VB.Net - What is the difference between AssemblyFileVersion & AssemblyFileVersionAttribute and AssemblyVersion & AssemblyVersionAttribute


I've inherited a VB.Net codebase which was VB 2005 and upgraded to VB 2008 consisting of around 100 projects

I'm trying to re-version all of the components but have discovered some of the AssemblyInfo.vb files have an AssemblyFileVersion entry and some have an AssemblyFileVersionAttribute entry.

Also, some have an AssemblyVersion entry and some have an AssemblyVersionAttribute entry.

What is the difference between with and without Attribute?

Which ones should I be using?


Solution

  • There is no difference. Just as int will resolve to System.Int32, any type derived from Attribute is treated specially by the compiler. So...

    [MyCustom] will resolve to [MyCustomAttribute]

    Relavent MSDN Entry

    By convention, all attribute names end with the word "Attribute" to distinguish them from other items in the .NET Framework. However, you do not need to specify the attribute suffix when using attributes in code. For example, [DllImport] is equivalent to [DllImportAttribute], but DllImportAttribute is the attribute's actual name in the .NET Framework.