فرض کنیم فایل تو به این شکله:
[assembly: AssemblyVersion("1.1.0.0")]
[assembly: AssemblyFileVersion("1.1.0.45")]
AssemblyVersion ، نسخه ی فایل تو (exe یا dll) هست که بقیه ی برنامه ها می بینن (با ILDasm فایلت رو باز کن و ببین که نسخۀ اسمبلیت 1.1.0.0 هست. همینطور اگه با کد ، این فایل رو load کنی ، باز هم این عدد رو خواهی دید)
Assembly asml = Assembly.LoadFile(@"I:\XZ.exe");
Console.WriteLine(asml.FullName);
AssemblyFileVersion نسخه ای هست که برای توزیع برنامه ات به مشتری ها به کار میره (یعنی اگه من روی برنامۀ فوق راست کلیک کرده و Properties رو بزنم ، در تب Details عدد 1.1.0.45 رو خواهم دید.)
(مثلا میتونی هر وقت که برنامه ات رو build کردی یه عدد به این اضافه کنی ، اما هر وقت واقعا تغییری در برنامه ات رخ داد و خواستی که ورژن اسمبلیت رو یکی اضافه کنی ، باید AssemblyVersion رو اضافه کنی)
AssemblyFileVersion زیاد مهم نیست و میتونی حذفش کنی ، چون برنامه های دیگه به AssemblyVersion متکی هستن
خیلی راحت بخوام بگم: AssemblyFileVersion برای انسان هاست و AssemblyVersion برای کامپیوتر