Как получить атрибут версии ?
пожалуйста, дайте мне знать, почему NullReferenceException возникает при получении версии
private static void showBanner() { string text = @" _title_ : _description_ Ver._version_ _copyright_ This ""_title_"" is distributed under terms of the ISC License. ( http://www.isc.org/downloads/software-support-policy/isc-license/ ) "; string title = getAttribute<AssemblyTitleAttribute>().Title; string description = getAttribute<AssemblyDescriptionAttribute>().Description; string version = getAttribute<AssemblyVersionAttribute>().Version; string copyright = getAttribute<AssemblyCopyrightAttribute>().Copyright; text = text.Replace("_title_", title) .Replace("_description_", description) .Replace("_version_", version) .Replace("_copyright_", copyright); Console.Error.WriteLine(text); } private static Tattribute getAttribute<Tattribute>() where Tattribute : Attribute { Assembly assembly = Assembly.GetExecutingAssembly(); return (Tattribute)Attribute.GetCustomAttribute(assembly, typeof(Tattribute)); }
Что я уже пробовал:
оба результата были одинаковыми
[assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")]
этот код тоже такой же, так что я думаю, что это не кажется проблемой шаблона.
string version = ((AssemblyVersionAttribute)Attribute.GetCustomAttribute(Assembly.GetExecutingAssembly(), typeof(AssemblyVersionAttribute))).Version;
Я могу получить версию по этому коду.
string version = Assembly.GetExecutingAssembly().GetName().Version.ToString();
NotPolitcallyCorrect
http://stackoverflow.com/questions/1144525/getcustomattribute-returns-null-for-assemblyversionattribute
Member 8530676
Спасибо за хороший совет.
Я буду использовать " сборку.GetExecutingAssembly ().GetName (). Version"