Silverlight 3 альтернатива FileVersionInfo.GetVersionInfo - PullRequest
5 голосов
/ 25 января 2010

В приложении Silverlight 3.0 я хочу использовать AssemblyFileVersion для отображения информации о версии приложения.Это не то же самое, что AssemblyVersion и обычно извлекается в приложении .NET с использованием кода, такого как:

var executingAssembly = Assembly.GetExecutingAssembly();
var fileVersionInfo = FileVersionInfo.GetVersionInfo(executingAssembly.Location);
var versionLabel = fileVersionInfo.FileVersion;

К сожалению, среда выполнения Silverlight 3.0 не включает FileVersionInfo класс.Есть ли альтернативный способ доступа к этой информации?

Ответы [ 2 ]

5 голосов
/ 25 января 2010

Вот способ сделать это с атрибутами - я не уверен, что он будет работать в Silverlight, хотя вам придется сообщить мне.

Assembly assembly = Assembly.GetExecutingAssembly();
object[] attributes = assembly.GetCustomAttributes(typeof(AssemblyFileVersionAttribute), false);
if (attributes != null && attributes.Length > 0)
{
    AssemblyFileVersionAttribute fileVersionAttribute = (AssemblyFileVersionAttribute)attributes[0];
    string version = fileVersionAttribute.Version;
}
3 голосов
/ 25 января 2010

Я нашел решение этой проблемы в сообщении в Твиттере Крейг Янг (из-за кэширования страниц Google), используя Assembly.GetCustomAttributes следующим образом

var executingAssembly = Assembly.GetExecutingAssembly();
var customAttributes = executingAssembly.GetCustomAttributes(typeof(AssemblyFileVersionAttribute), false);
if (customAttributes != null)
{
   var assemblyFileVersionAttribute = customAttributes[0] as AssemblyFileVersionAttribute;
   var fileVersionLabel = assemblyFileVersionAttribute.Version;
}

Публикация этого решения для дальнейшего использования.

...