如何檢測安裝了哪些.NET Framework版本和Service Pack?



Answers

在下面的知識庫文章中有一個官方的微軟對這個問題的回答:

文章編號:318785 - 最後修改:2008年11月7日 - 修訂:20.1如何確定安裝了哪些版本的.NET Framework以及是否應用了Service Pack

不幸的是,它似乎沒有工作,因為在2.0目錄中的mscorlib.dll版本有一個2.0版本,即使3.5 SP1安裝在3.0或3.5目錄中沒有mscorlib.dll版本...為什麼微軟官方的回答會如此錯誤嗎?

Question

在這裡提出一個類似的問題,但它是特定於.NET 3.5的。 具體來說,我正在尋找以下內容:

  1. 什麼是確定安裝哪些.NET Framework版本和Service Pack的正確方法?
  2. 是否有一個可以使用的註冊表項列表?
  3. 框架版本之間是否存在任何依賴關係?



使用SignumFramework的Signum.Utilities庫(可以獨立使用),您可以很好地使用它,而無需親自處理註冊表:

AboutTools.FrameworkVersions().ToConsole();
//Writes in my machine:
//v2.0.50727 SP2
//v3.0 SP2
//v3.5 SP1






.NET 4.5.1更新

現在.NET 4.5.1已經可用了,在註冊表中名為Release的鍵的實際值需要被檢查,而不僅僅是它的存在。 值為378758表示安裝了.NET Framework 4.5.1。 但是,如此處所述在Windows 8.1上這個值是378675。










枚舉HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP 。 每個子項都是一個.NET版本。 如果計算機上存在Install=1值,則顯示Service Pack的SP值以及使用MSI=1安裝的MSI=1值。 (Windows Vista上的.NET 2.0沒有最後一個例子,因為它是操作系統的一部分。)




我需要找出我的電腦上有哪個版本的.NET框架,我所做的只是去控制面板,選擇“卸載程序”選項。 之後,我按名稱對程序進行了排序,並找到了Microsoft .NET Framework 4 Client Profile。




在Windows 7中(它也適用於Windows 8,但我沒有測試過):

轉到命令提示符

轉到命令提示符的步驟:

  1. 點擊開始菜單
  2. 在搜索框中,輸入“cmd”(不含引號)
  3. 打開cmd.exe

在cmd中輸入這個命令

wmic /namespace:\\root\cimv2 path win32_product where "name like '%%.NET%%'" get version

這樣就可以安裝最新版本的.NET Framework。

也可以嘗試Raymond.cc Utilities的相同。




Links