代码之家  ›  专栏  ›  技术社区  ›  Simon Randy Burden

如何确定编译程序集所依据的Silverlight版本?

  •  1
  • Simon Randy Burden  · 技术社区  · 14 年前

    给定一个程序集,我如何确定(在代码中)编译该程序集所依据的Silverlight版本?

    所以我想要一种方法

    public static decimal GetSilverlightVersion(string assemblyPath)
    {
       Magic goes here
    }
    

    它应该返回2.0、3.0或4.0

    注意:执行的代码是.net 4而不是Silverlight

    1 回复  |  直到 14 年前
        1
  •  1
  •   Hans Passant    14 年前

    编译器将[TargetFramework]属性嵌入到程序集中。您可以在运行时通过反射读取它。一些示例代码:

            var asm = System.Reflection.Assembly.GetExecutingAssembly();
            var attr = asm.GetCustomAttributes(typeof(System.Runtime.Versioning.TargetFrameworkAttribute), false)
                as System.Runtime.Versioning.TargetFrameworkAttribute[];
            if (attr.Length > 0) {
                label1.Content = attr[0].FrameworkDisplayName;
            }
    

    在我的机器上显示的值:“Silverlight 4”。