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?

2

There are 2 answers

1
Josh On BEST ANSWER

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.

1
Hans Olsson On

AssemblyFileVersion and AssemblyFileVersionAttribute etc are the same thing and you can use either one. Here's a response from Microsoft on their connect website about this.