views:

38

answers:

2

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?

+4  A: 

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.

Josh
+1 Thanks Josh same answer as ho1, which one to accept??
Shevek
Lol, it really doesn't matter either way :) Rep is nice, but it's not why I answer questions on SO.
Josh
+3  A: 

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.

ho1
+1 Thanks ho1 same answer as Josh, which one to accept??
Shevek
@Shevek: I'd go with Josh's answer since he got the most upvotes and obviously put in more effort than my answer.
ho1
+1 for being cool :)
Josh