В рамках приложения Silverlight 3.0 я хочу использовать AssemblyFileVersion для отображения информации о версии приложения. Это не то же как AssemblyVersion и обычно получается в приложении.NET с помощью кода, такого как:
var executingAssembly = Assembly.GetExecutingAssembly();
var fileVersionInfo = FileVersionInfo.GetVersionInfo(executingAssembly.Location);
var versionLabel = fileVersionInfo.FileVersion;
К сожалению, время выполнения Silverlight 3.0 не включает класс FileVersionInfo. Существует ли альтернативный способ получить доступ к этой информации?
Я нашел решение этого в Twitter Post со Craig Young (вежливость кэширования страницы 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;
}
Размещение этого решения для дальнейшего использования.
Вот способ сделать это с атрибутами - я не уверен, будет ли он работать в 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;
}