【问题标题】:How do I determine what version of Silverlight an assembly is compiled against?如何确定针对哪个版本的 Silverlight 编译程序集?
【发布时间】:2010-11-25 01:05:09
【问题描述】:

给定一个程序集,我如何确定(在代码中)该程序集是针对哪个版本的 Silverlight 编译的?

所以我想要一个这样做的方法

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

它应该返回 2.0、3.0 或 4.0

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

【问题讨论】:

    标签: .net silverlight assemblies


    【解决方案1】:

    编译器将 [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”。

    【讨论】:

    • 我不知道“目标文件”是什么意思,只有程序集依赖于 Silverlight 版本。文件可以是任何东西。还有其他的 Assembly 类方法可以让您选择一个程序集,选择您关心的一个。
    • 汉斯。对不起。我实际上试图撤消我的反对票,但我离开的时间太长了。看起来你的解决方案会奏效。我只需要确认。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-22
    • 1970-01-01
    相关资源
    最近更新 更多