2010-11-25 43 views
1

給定一個程序集如何確定(在代碼中)該程序集編譯的Silverlight版本是什麼?如何確定組件編譯的Silverlight版本是什麼?

所以,我想,這是否

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

的方法和它應該返回2.0,3.0或4.0

注:執行代碼是.NET 4的Silverlight不

回答

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」。

+0

我不知道「目標文件」是什麼意思,只有程序集依賴於Silverlight版本。一個文件可以是任何東西。還有其他的Assembly類方法可以讓你選擇一個程序集,選擇一個你關心的程序集。 – 2010-11-28 22:49:35

相關問題