Что такое синтаксис С# для получения значения атрибута сборки AssemblyInformationalVersion во время выполнения? Пример:
 [assembly: AssemblyInformationalVersion("1.2.3.4")]
Что такое синтаксис С# для получения значения атрибута сборки AssemblyInformationalVersion во время выполнения? Пример:
 [assembly: AssemblyInformationalVersion("1.2.3.4")]
using System.Reflection.Assembly  
using System.Diagnostics.FileVersionInfo
// ...
public string GetInformationalVersion(Assembly assembly) {
    return FileVersionInfo.GetVersionInfo(assembly.Location).ProductVersion;
}
		var attr = Assembly
    .GetEntryAssembly()
    .GetCustomAttributes(typeof(AssemblyInformationalVersionAttribute), false) 
    as AssemblyInformationalVersionAttribute[];
Это массив AssemblyInformationalVersionAttribute. Он не всегда имеет значение null, даже если атрибут искомого типа отсутствует.
var attr2 = Attribute
    .GetCustomAttribute(
        Assembly.GetEntryAssembly(), 
        typeof(AssemblyInformationalVersionAttribute)) 
    as AssemblyInformationalVersionAttribute;
Это может быть null, если атрибут отсутствует.
var attr3 = Attribute
    .GetCustomAttributes(
         Assembly.GetEntryAssembly(), 
         typeof(AssemblyInformationalVersionAttribute)) 
    as AssemblyInformationalVersionAttribute[];
Аналогично первой.
Даже если вопрос немного старый:
Я предлагаю другое решение, которое работает для меня:
Application.ProductVersion
		AssemblyInformationalVersionAttribute attribute = 
   (AssemblyInformationalVersionAttribute)Assembly.GetExecutingAssembly()
   .GetCustomAttributes(typeof(AssemblyInformationalVersionAttribute), false).FirstOrDefault();
if (attribute != null)
     Console.WriteLine(attribute.InformationalVersion);
		Используя известный тип в приложении, вы можете просто сделать это:
using System.Reflection;
public static readonly string ProductVersion = typeof(MyKnownType).Assembly.GetCustomAttribute<AssemblyInformationalVersionAttribute>().InformationalVersion;
Конечно, любой процесс, который вы используете для доступа к сборке, к которой применяется ваш атрибут, хорош. Обратите внимание, что это не зависит от System.Diagnostics или объекта WinForm Application.
Чтобы дополнить ответ lance: вы можете использовать Application.ResourceAssembly.Location, чтобы узнать путь к файлу вашей сборки. Благодаря этому можно получить строку AssemblyInformationalVersion только в одной строке
System.Diagnostics.FileVersionInfo.GetVersionInfo(Application.ResourceAssembly.Location).ProductVersion
		http://msdn.microsoft.com/en-us/library/system.reflection.assemblyinformationalversionattribute.aspx
Взгляните на свойство InformativeVersion
Создание ответа @Aerthal, если вы хотите, чтобы один лайнер получал атрибут AssemblyInformationalVersionAttribute из представления Razor MVC:
@System.Diagnostics.FileVersionInfo.GetVersionInfo(typeof(Zeroarc.Candid.Web.MvcApplication).Assembly.Location).ProductVersion