Как определить, с какой версией Silverlight компилируется сборка? - PullRequest
1 голос
/ 25 ноября 2010

Учитывая сборку, как определить (в коде), к какой версии Silverlight эта сборка скомпилирована?

Поэтому я хочу метод, который делает это

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

, и он долженreturn 2.0, 3.0 или 4.0

Примечание: исполняемый код .net 4 не Silverlight

1 Ответ

1 голос
/ 28 ноября 2010

Компилятор встраивает атрибут [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".

...