ОБНОВЛЕНИЕ: Как упоминал Ричард Граймс в моем цитируемом посте , @Iain и @Dmitry Lobanov, мой ответ верен в теории, но неверен на практике.
Как я должен был помнить из бесчисленных книг и т. Д., Хотя кто-то устанавливает эти свойства с помощью [assembly: XXXAttribute]
, они компилятором подвергаются сильному захвату и помещаются в ресурс VERSIONINFO
.
По вышеуказанной причине вам нужно использовать подход в @ ответ Сяофу , поскольку атрибуты удаляются после извлечения сигнала из них.
public static string GetProductVersion()
{
var attribute = (AssemblyVersionAttribute)Assembly
.GetExecutingAssembly()
.GetCustomAttributes( typeof(AssemblyVersionAttribute), true )
.Single();
return attribute.InformationalVersion;
}
(с http://bytes.com/groups/net/420417-assemblyversionattribute - как уже отмечалось, если вы ищете другой атрибут, замените его на вышеприведенный)