2009-04-12 29 views
4

我知道官方的方式是註冊表,但這是有點時間消耗。有沒有找到哪個.NET框架安裝在PC上的工具?

我要檢查幾個PC的,他們都沒有VisualStudio的安裝版本,但是所有的人(可能)一個版本的.NET框架的。

由於熱水可能已經存在,我可以在哪裏找到它?

回答

2

這裏有一個免費的輕量級的工具,做它快速 - 如果你想要做手工.NET Version detector 2007

this page顯示4-5好辦法做到這一點。 MS Support page提供了一種方法,只需打開Framework文件夾並檢查已安裝的版本(文件夾名稱)即可!

但是,如果你想以編程方式做到這一點,在HttpBrowserCapabilities類提供了一個GetClrVersions()方法就是通過Request.Browser.GetClrVersions()電話訪問。當然,正如其他人所說,你可以隨時查詢瀏覽器的navigator.userAgent的屬性也通過JavaScript(我認爲這會告訴你只能在IE的.NET版本):

javascript:alert(navigator.userAgent) 
3
  1. 嘗試smallestdotnet主頁是使用瀏覽器的用戶代理,以檢查您的.NET版本。
  2. goto \ Windows \ Microsoft.NET \ Framework \你會看到你擁有的所有版本。
0

這裏是一個代碼,你可以把ASP.net網站或winforms


using System; 
using System.Collections.Generic; 
using System.Text; 
using System.Runtime.InteropServices; 

namespace ConsoleApplication1 
{ 
class Program 
{ 
[DllImport("mscoree.dll")] 
private static extern int GetCORSystemDirectory(
[MarshalAs(UnmanagedType.LPWStr)]StringBuilder pbuffer, 
int cchBuffer, ref int dwlength); 

static void Main(string[] args) 
{ 
GetClrInstallationDirectory(); 
} 

private static void GetClrInstallationDirectory() 
{ 
int MAX_PATH = 260; 
StringBuilder sb = new StringBuilder(MAX_PATH); 
GetCORSystemDirectory(sb, MAX_PATH, ref MAX_PATH); 
Console.WriteLine(sb.ToString()); 
while(Console.Read() != 'q') ; 
} 

} 
}
1

我在編寫PowerShell腳本時通常遇到此問題。我覺得要做到這一點的最好辦法是在每個以下基本目錄

  • %WINDIR%\ Microsoft.Net \框架
  • %WINDIR%\ Microsoft.Net \ Framework64
  • 的運行下面的檢查

不要忘記第二個目錄,否則可能會導致應用程序在64位機器上出現故障。

對於每個起點,我尋找匹配目錄v\d+\\.\d+\\.\d+幷包含文件mscorlib.dll。僅僅查找目錄名是不夠的,因爲名稱可能存在而實際上並未安裝該版本的框架。例如,如果你有一臺vista機器,你也會有v1.0.3705和v1.1.4322,但實際上這些框架都沒有安裝。

相關問題