在Silverlight 3.0应用程序中,我想使用AssemblyFileVersion来显示应用程序的版本信息。这与AssemblyVersion不同,通常使用以下代码在.NET应用程序中检索:
var executingAssembly = Assembly.GetExecutingAssembly();
var fileVersionInfo = FileVersionInfo.GetVersionInfo(executingAssembly.Location);
var versionLabel = fileVersionInfo.FileVersion;
不幸的是,Silverlight 3.0运行时不包含FileVersionInfo类。是否有其他方法可以访问此信息?
答案 0 :(得分:5)
这是一种使用属性的方法 - 我不确定它是否适用于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;
}
答案 1 :(得分:3)
我在Craig Young的推特帖子中找到了解决方法(使用Assembly.GetCustomAttributes提供了{{3}},如下所示
var executingAssembly = Assembly.GetExecutingAssembly();
var customAttributes = executingAssembly.GetCustomAttributes(typeof(AssemblyFileVersionAttribute), false);
if (customAttributes != null)
{
var assemblyFileVersionAttribute = customAttributes[0] as AssemblyFileVersionAttribute;
var fileVersionLabel = assemblyFileVersionAttribute.Version;
}
发布此解决方案以供将来参考。