2016-08-16 76 views
0

我想確定.net程序集(dll或exe)的目標框架版本。 如何.net程序集有一個目標框架< .net 4.0? 如果有一種解決方案,我不需要使用外部工具,那將會很好。我更喜歡基於Microsoft VS/PowerShell或Windows的解決方案。 如果你能幫助我,我會很高興。 因爲現在我只知道如何獲得目標框架版本,如果程序集有一個目標版本> = .net 4.0。 (在這種情況下,我只是看裝配件的清單內,並期待在TargetFrameworkAttribute)獲取具有目標框架的.net程序集的目標框架<.net 4.0

非常感謝

PhilOverflow

+0

程序集不針對框架版本,它們以* runtime *版本爲目標。它將是2.0.50727並且[TargetFrameworkAttribute]將會丟失。從你的問題來看,這並不明顯,爲什麼這很重要,但是缺失的屬性也許足夠提示。或[使用此](https://msdn.microsoft.com/en-us/library/ms230176(v = vs.110).aspx)。 –

+0

<4.0意味着它不支持目標框架版本功能。你應該簡單地接受這個事實。 –

回答

0

我已經使用Assembly.ReflectionOnlyLoadFrom加載大會,然後檢查返回的大會ImageRuntimeVersion ,如:

var assembly = Assembly.ReflectionOnlyLoadFrom(ada.FileName); 
    string name = assembly.GetName(); 
    string clrVersion = assembly.ImageRuntimeVersion; 

我已經使用這種技術成功地檢測到.NET 2和.NET 4個集從.NET 4的可執行文件,但不知道是否會從.NET 2可執行工作DETEC .NET 4.0程序集。

+0

這是檢測運行時版本的好主意。對我來說,知道程序集的框架版本而不是運行時版本更重要。但是我非常感謝你想要幫助。 – PhilOverflow

相關問題