查詢 Windows 作業系統 .NET Framework Version
2021-02-19
筆記查詢作業系統上 .NET Framework 版本的方法🔍
Determine which .NET Framework versions are installed
說明
常見因為 .NET Framework 所引發的錯誤:
剖析器錯誤訊息: Web.config 檔案的
元素中的 'targetFramework' 屬性只能用於目標為 4.0 (含) 以後版本的 .NET Framework (例如 ' ')。'targetFramework' 屬性目前參考的版本比所安裝的 .NET Framework 版本還要新。請指定有效的目標 .NET Framework 版本,或是安裝所需的 .NET Framework 版本。
關於版本的相容性
.NET Framework 版本 2.0、3.0 和 3.5 都是基於 CLR (CLR 2.0) 所建置。 因此無法在作業系統並存 2.0、3.0 和3.5。當安裝 3.5 版時,針對 2.0、3.0 和 3.5 版所建置的應用程式都可以在 3.5 版上執行。
在 .NET Framework 4 結束基於 (CLR 2.0) 的建置方法,.NET Framework 4 支援執行不同版本的 CLR (4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, and 4.8) 在單一行程中(in a single process)。
使用 PowerShell
Detect .NET Framework Version
第一方式是從機碼比較 Release Number 來判斷 .NET Framework 的版本
Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full'
版本的對照如下:
[
{ 'Version' : '4.5', 'Number' : 378389},
{ 'Version' : '4.5.1', 'Number' : 378675},
{ 'Version' : '4.5.2', 'Number' : 379893},
{ 'Version' : '4.6', 'Number' : 393295},
{ 'Version' : '4.6.1', 'Number' : 394254},
{ 'Version' : '4.6.2', 'Number' : 394802},
{ 'Version' : '4.7', 'Number' : 460798},
{ 'Version' : '4.7.1', 'Number' : 461308},
{ 'Version' : '4.7.2', 'Number' : 461808},
{ 'Version' : '4.8', 'Number' : 528040},
]
第二種方式也是查詢機碼,但依機碼中的 version 進行判斷
Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' `
-Recurse | Get-ItemProperty -Name version -EA 0 `
| Where { $_.PSChildName -Match '^(?!S)\p{L}'} `
| Select PSChildName, version
Find CLR versions
使用 RuntimeEnvironment 可以取得 CLR 的版本,其格式為 v4.0.Build版號
:
[System.Runtime.InteropServices.RuntimeEnvironment]::GetSystemVersion()
使用 System.Environment 可以取得 Build 以及 Revision:
[System.Environment]::Version
參考資料
.NET Framework versions and dependencies
How to: Determine which .NET Framework versions are installed