インストール - .NET Framework

提供: MochiuWiki : SUSE, EC, PCB

📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

概要

.NET Frameworkは、Microsoft が開発したWindowsプラットフォーム専用の包括的なアプリケーション開発プラットフォームである。
2002年の初版リリース (バージョン 1.0) 以来、20年以上に渡りWindowsアプリケーション開発の中核を担ってきた。

.NET Frameworkは、以下に示す主要コンポーネントで構成される。

.NET Frameworkの主要コンポーネント
コンポーネント 説明
CLR (Common Language Runtime) マネージドコードの実行環境
JITコンパイル、ガベージコレクション、セキュリティ管理、型安全性を担う。
BCL (Base Class Library) 文字列、数値、コレクション、I/O 等、CLRが提供する最小限の基盤クラスライブラリ
FCL (Framework Class Library) ASP.NET、Windows Forms、WPF、WCF 等、Microsoft固有の拡張クラスライブラリ


対応プログラミング言語は、C#、VB.NET、F#、C++/CLI等、60以上にわたる。
.NET FrameworkはWindows専用プラットフォームであり、MacOSおよびLinuxでは動作しない。

最新版は 2022年8月にリリースされた .NET Framework 4.8.1 であり、ARM64ネイティブサポートおよびアクセシビリティ強化が追加された。

現在 .NET Framework はメンテナンスモードにあり、セキュリティ修正のみが提供される。

新規開発には、クロスプラットフォーム対応のオープンソース実装である.NET 10以降が推奨される。


.NET Frameworkのアーキテクチャ

.NET Frameworkは、CLRを中心とした階層構造を持つ。
CLRがハードウェアとの橋渡しを担い、その上にCTS / CLSによる型システム、BCL/FCLによるクラスライブラリが積み重なる形で構成される。

CLR (Common Language Runtime)

CLRは、.NET Frameworkの仮想マシンコンポーネントであり、マネージドコードの実行基盤を提供する。

CLRが担う機能を以下に示す。

  • JITコンパイル
    MSIL (Microsoft Intermediate Language) をネイティブコードに変換して実行する。
  • ガベージコレクション
    不要なオブジェクトを自動的に検出・解放し、メモリ管理を担う。
  • セキュリティ管理
    コードアクセスセキュリティ (CAS) により、コードの実行権限を制御する。
  • 型安全性の保証
    型チェックを実施し、不正なメモリアクセスを防止する。
  • スレッド管理
    マネージドスレッドのスケジューリングと同期を担う。
  • 例外処理
    構造化例外処理 (SEH) を提供する。


CTS (Common Type System) / CLS (Common Language Specification)

CTSは、.NET Frameworkでサポートする全ての言語が共有する型体系の標準である。

  • CTS (Common Type System)
    全言語共通の型体系を定義する。値型 (スタック) と 参照型 (ヒープ) を区別する。
    例: C#の int、VB.NET の Integer は、いずれも CTS の System.Int32 に対応する。
  • CLS (Common Language Specification)
    CTSの部分集合であり、言語間の相互運用性を保証するルール集である。
    CLSに準拠したコードは、サポートされるあらゆる.NET言語から利用可能となる。


BCL / FCL

BCLとFCLは、.NET Frameworkが提供するクラスライブラリの2つの階層である。

  • BCL (Base Class Library)
    CLRが提供する最小限の基盤クラスライブラリ
    文字列処理、数値演算、コレクション、I/O、ネットワーク通信等、基本的なAPIを提供する。
  • FCL (Framework Class Library)
    BCLを包含し、Microsoft固有の拡張クラスライブラリを加えたもの。
    ASP.NET、Windows Forms、WPF、WCF、WF等、各種アプリケーションフレームワークを含む。
    FCLとCLRを合わせた全体が、所謂.NET Frameworkを構成する。


JIT コンパイルの流れ

.NET Frameworkでは、ソースコードからネイティブコードへの変換が以下の手順で行われる。

  1. ソースコード (C#等) をコンパイラがMSIL (Microsoft Intermediate Language)に変換し、アセンブリ (.dll / .exe) に格納する。
  2. アプリケーション実行時にCLRがアセンブリをロードする。
  3. メソッドの初回呼び出し時に、JITコンパイラがMSILをネイティブコードに変換する。
  4. 変換されたネイティブコードをメモリにキャッシュする。
  5. 同一メソッドの2回目以降の呼び出しは、キャッシュされたネイティブコードを直接実行する。


ガベージコレクション

CLRのガベージコレクタ (GC) は、マーク・スイープ方式と世代別GCを組み合わせてメモリを管理する。

  • マーク・スイープ方式
    ルートオブジェクトから到達可能なオブジェクトをマークし、到達不可能なオブジェクトをスイープ (解放) する。
  • 世代別GC
    オブジェクトを 3 つの世代に分類し、効率的にメモリを回収する。


世代別GCの各世代を以下に示す。

  • 世代 0
    最新のオブジェクト
    最も頻繁にGCの対象となる。
    短命なオブジェクト (一時変数等) を収容する。
  • 世代 1
    世代0のGCを1回生き残ったオブジェクト
    バッファとして機能する。
  • 世代 2
    2回以上のGCを生き残った長命なオブジェクト
    静的オブジェクト等を収容する。
    GCの頻度は最も低い。


アセンブリ

アセンブリは、.NET Frameworkにおける配布および実行の単位である。

アセンブリの構成要素を以下に示す。

  • Assembly Manifest
    アセンブリのメタデータ
    バージョン、依存関係、エクスポートされる型の情報を含む。
  • MSILコード
    コンパイルされた中間言語コード
  • リソース
    画像、文字列等の埋め込みリソース


アセンブリの種別を以下に示す。

  • プライベートアセンブリ
    アプリケーション専用のアセンブリ
    アプリケーションディレクトリに配置する。
  • 共有アセンブリ
    複数のアプリケーションで共有するアセンブリ
    GAC (Global Assembly Cache) に登録する。
    GACへの登録には、強い名前 (Strong Name) による公開鍵署名が必須である。



バージョン履歴

バージョンと CLR の対応

下表に、.NET Frameworkの各バージョンとリリース年、CLRバージョン、その他の機能を示す。

.NET Framework バージョン一覧
バージョン リリース年 CLR バージョン 主な新機能
1.0 2002 CLR 1.0 初版。基本的なマネージド実行環境
1.1 2003 CLR 1.1 ASP.NET モバイルコントロール、IPv6 サポート
2.0 2005 CLR 2.0 ジェネリック、64 ビットサポート、ClickOnce デプロイ
3.0 2006 CLR 2.0 WPF、WCF、WF の統合
3.5 2007 CLR 2.0 LINQ、Expression Trees、HashSet
4.0 2010 CLR 4 並列処理 (TPL、PLINQ)、dynamic キーワード
4.5 2012 CLR 4 非同期処理 (async/await)、Windows 8 標準搭載
4.5.1 2013 CLR 4 非同期デバッグ改善、Windows 8.1 標準搭載
4.5.2 2013 CLR 4 HTTP/2 サポート
4.6 2015 CLR 4 RyuJIT コンパイラ、Windows 10 標準搭載
4.6.1 2015 CLR 4 HTTPS / TLS 1.2 改善
4.6.2 2016 CLR 4 WPF / WinForms 改善
4.7 2017 CLR 4 .NET Standard サポート強化
4.7.1 2017 CLR 4 アクセシビリティ改善
4.7.2 2018 CLR 4 .NET Standard 2.0 完全対応
4.8 2019 CLR 4 WPF / WinForms 改善、アクセシビリティ向上
4.8.1 2022 CLR 4 ARM64 ネイティブサポート、アクセシビリティ強化


CLR 2.0は、.NET Framework 2.0、3.0、3.5で使用される。
CLR 4は、.NET Framework 4.0以降の全てのバージョンで使用される。
4.5 以降はインプレース更新であり、CLR のバージョンは変わらない。

Windowsバージョンごとのプリインストールバージョン

各Windows OSのバージョンにプリインストールされている.NET Frameworkのバージョンを以下に示す。

Windows OS と .NET Framework プリインストールバージョン
OS バージョン プリインストール版 追加インストール可能な版
Windows 11 (24H2 以降) 4.8.1 -
Windows 11 (22H2) 4.8.1 -
Windows 11 (21H2) 4.8 4.8.1
Windows 10 (22H2) 4.8 4.8.1
Windows 10 (21H2) 4.8 4.8.1
Windows 10 (May 2019 Update) 4.8 -
Windows 10 (October 2018 Update) 4.7.2 4.8
Windows 8.1 4.5.1 4.8
Windows Server 2025 4.8.1 -
Windows Server 2022 4.8 4.8.1
Windows Server 2019 4.7.2 4.8
Windows Server 2016 4.6.2 4.8


サポート状況

各バージョンのサポート状況を以下に示す。

  • .NET Framework 4.8.1 / 4.8
    Windowsのコンポーネントとして、親のWindows OSと同じライフサイクルに従い継続サポートされる。
  • .NET Framework 4.5.2 / 4.6 / 4.6.1
    2022年4月26日にサポート終了
  • .NET Framework 4.0 / 4.5 / 4.5.1
    2016年1月12日にサポート終了
  • .NET Framework 3.5 SP1
    OS バージョンにより異なるが、概ね2029年4月までサポート


.NET Framework 4.xはインプレース更新のため、システムに複数の4.xバージョンが共存することはできない。


前提条件

対応 OS

.NET Framework 4.8.1の対応OSを以下に示す。

  • Windows 11 (全バージョン)
  • Windows 10 (バージョン 21H2、22H2)
  • Windows Server 2022
  • Windows Server 2025


.NET Framework 4.8の対応OSを以下に示す。

  • Windows 11
  • Windows 10 (May 2019 Update 以降)
  • Windows 8.1
  • Windows 7 SP1
  • Windows Server 2022
  • Windows Server 2019
  • Windows Server 2016
  • Windows Server 2012 R2
  • Windows Server 2012
  • Windows Server 2008 R2 SP1


ハードウェア要件

下表に、.NET Framework 4.5以降に共通するハードウェア要件を示す。

ハードウェア要件
項目 要件
プロセッサ 1[GHz]以上
RAM 512[MB]以上
ディスク容量 4.5[GB]以上の空き容量
アーキテクチャ 32ビット / 64ビット両対応



ダウンロード

公式ダウンロードページ

.NET Framework の公式ダウンロードページを以下に示す。


インストーラーの種類

.NET Frameworkのインストーラーには、Webインストーラーとオフラインインストーラーの2種類がある。

  • Webインストーラー
    インターネット接続が必要。ファイルサイズが小さい。(数[MB]程度)
    OS の言語設定に対応した言語パックを自動的にダウンロードしてインストールする。
  • オフラインインストーラー
    インターネット接続が不要
    ファイルサイズが大きい。(数百[MB]程度)
    言語パックは含まれないため、必要に応じて別途ダウンロードが必要である。


Developer Pack と Runtimeの違い

下表に、Developer PackとRuntimeの違いを示す。

Developer Pack と Runtimeの比較
項目 Runtime Developer Pack
用途 アプリケーション実行 アプリケーション開発
対象ユーザー エンドユーザー 開発者
含まれるもの ランタイムのみ Runtime + 開発ツール + リファレンスアセンブリ + IntelliSense ファイル
Visual Studio での開発 不要 必要
ファイルサイズ


Language Pack (言語パック)

Language Packは、エラーメッセージおよびUIテキストのローカライズリソースを提供するパッケージである。

  • Webインストーラーを使用する場合、OSの言語設定に対応するLanguage Packが自動的にインストールされる。
  • オフラインインストーラーにはLanguage Packが含まれないため、必要に応じて公式ダウンロードページから別途ダウンロードする。
  • サポート言語は英語、日本語、中国語、スペイン語、フランス語、ドイツ語等多数である。



インストール

GUI によるインストール

GUIを使用した.NET Frameworkのインストール手順を以下に示す。

  1. 公式ダウンロードページから[Download]を選択して、インストーラー (.exe) をダウンロードする。
  2. ダウンロードした実行ファイルをダブルクリックして起動する。
  3. ユーザアカウント制御 (UAC) の確認ダイアログが表示された場合は[はい]を選択する。
  4. セットアップウィザードの指示に従い、インストールを進める。
  5. インストール完了後、必要に応じてPCを再起動する。


コマンドラインによるサイレントインストール

コマンドラインを使用してサイレントインストールを行う場合は、以下のコマンドを実行する。

 ndp481-web.exe /q /norestart


下表に、主なパラメータを示す。

インストールオプション一覧
オプション 説明
/q クワイエット (サイレント) モード
UIを表示せずにインストールを実行する。
/passive パッシブモード
プログレスバーのみを表示する。
/AcceptEULA ライセンス条項に自動的に同意する。
/norestart インストール完了後に再起動しない。
/forcerestart インストール完了後に再起動を強制する。


Windows の機能の有効化 (.NET Framework 3.5)

.NET Framework 3.5は、Windowsの機能として有効化する方法でインストールできる。

  1. コントロールパネルを開き、[プログラム]を選択する。
  2. [Windowsの機能の有効化または無効化]を選択する。
  3. [.NET Framework 3.5 (.NET 2.0および3.0を含む)]にチェックを入力する。
  4. [OK]を選択する。
  5. Windows Updateからコンポーネントが自動的にダウンロードおよびインストールされる。


DISMコマンドによるインストール (.NET Framework 3.5)

DISMコマンドを使用して .NET Framework 3.5をインストールする方法を以下に示す。

インターネット接続がある環境では、以下のコマンドを管理者として実行する。

 DISM /Online /Enable-Feature /FeatureName:NetFx3 /All


インターネット接続がない環境では、Windows インストールメディアを使用して以下のコマンドを実行する。

 DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:D:\sources\sxs


DISMコマンドの主なパラメータを以下に示す。

DISMコマンドの主なパラメータ
パラメータ 説明
/Online 現在実行中のOSに対して操作を行う。
/Enable-Feature 指定した機能を有効化する。
/FeatureName:NetFx3 .NET Framework 3.5の機能名を指定する。
/All 親機能を含めて全ての機能を有効化する。
/LimitAccess Windows Update および WSUSへの接続を避け、ローカルソースのみを使用する。
/Source インストールメディア内のソースファイルパスを指定する。
D:\sources\sxsD: はインストールメディアのドライブレターを指す。


Developer Packのインストール

Developer Packは、Visual Studioを使用した開発環境の構築に必要である。

  1. 公式ダウンロードページから、Developer Packのインストーラーをダウンロードする。
  2. ダウンロードした実行ファイルをダブルクリックして起動する。
  3. セットアップウィザードの指示に従いインストールを進める。
  4. Visual Studioを再起動し、ターゲットフレームワークに.NET Framework 4.8.1が表示されることを確認する。



インストールの確認

レジストリによる確認

.NET Framework 4.5以降のインストール状態は、以下のレジストリキーで確認できる。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full


下表に、Release DWORDの値と対応するバージョンを示す。

Release DWORDの値 と .NET Frameworkバージョンの対応
Release DWORDの値 (以上) .NET Frameworkバージョン
533325 4.8.1
528040 4.8
461808 4.7.2
461308 4.7.1
460798 4.7
394802 4.6.2
394254 4.6.1
393295 4.6
379893 4.5.2
378675 4.5.1
378389 4.5


コマンドプロンプトでの確認

コマンドプロンプトから REG QUERY コマンドを使用して確認する場合は、以下のコマンドを実行する。

 REG QUERY "HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" /v Release


PowerShellでの確認

PowerShellを使用して、インストールされている全ての.NET Frameworkバージョンを確認する場合は、以下のスクリプトを実行する。

 Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -Recurse |
    Get-ItemProperty -Name Version -ErrorAction SilentlyContinue |
    Where-Object { $_.Version -match '^\d+\.\d+' } |
    Select-Object PSChildName, Version


特定のバージョン (例: 4.8) がインストールされているかどうかを確認する場合は、以下のコマンドを実行する。

 (Get-ItemPropertyValue -LiteralPath 'HKLM:SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full' -Name Release) -ge 528040


True が返された場合、.NET Framework 4.8以上がインストールされている。

CLR バージョンの確認

下表に、CLRバージョンと.NET Frameworkバージョンの対応を示す。

CLRバージョン と .NET Frameworkバージョンの対応
CLR バージョン 対応する .NET Framework バージョン
CLR 1.0 1.0
CLR 1.1 1.1
CLR 2.0 2.0、3.0、3.5
CLR 4 4.0、4.5、4.5.1、4.5.2、4.6、4.6.1、4.6.2、4.7、4.7.1、4.7.2、4.8、4.8.1


C#のソースコードから現在実行しているCLRのバージョンを確認する場合は、以下のコードを使用する。

 Console.WriteLine(Environment.Version);



.NET Framework と .NET 5以降の違い

下表に、.NET Frameworkと.NET 5以降 (.NET 8等) の主な違いを示す。

.NET Framework と .NET 5 以降の比較
項目 .NET Framework (4.8.1) .NET 5 以降
対応プラットフォーム Windowsのみ Windows、MacOS、Linux (クロスプラットフォーム)
ライセンス プロプライエタリ (コンポーネント) オープンソース (MIT ライセンス)
パフォーマンス 安定 より高速・最適化
配置方式 インプレース更新 (単一バージョンのみ共存可) サイドバイサイド実行可能
コンテナ対応 限定的 Docker、Kubernetesに対応
開発方針 メンテナンスモード (セキュリティ修正のみ) アクティブ開発
推奨用途 既存アプリケーションの保守 新規開発
デスクトップ UI WPF、WinForms WPF、WinForms、MAUI
Web フレームワーク ASP.NET 4.x ASP.NET Core



アンインストール

コントロールパネルからのアンインストール

コントロールパネルを使用してアンインストールする手順を以下に示す。

  1. コントロールパネルを開き、[プログラムと機能]を選択する。
  2. 一覧から "Microsoft .NET Framework X.X" を選択する。
  3. [アンインストール]を選択する。
  4. 確認ダイアログが表示されたら、[はい]を選択する。
  5. アンインストール完了後、PCを再起動する。


.NET Framework 4.xはインプレース更新のため、古いバージョンを削除するには新しいバージョンの削除も必要になる場合がある。
また、Windowsにプリインストールされたバージョンは、Windows Updateにより再インストールされる可能性がある。

.NET Framework Cleanup Tool

.NET Framework Cleanup Tool は、Aaron Stebner が開発した .NET Framework の完全削除ツールである。

このツールは以下の情報を徹底的に削除する。

  • レジストリ エントリ
  • インストールされたファイル
  • Windows Installer の情報


このツールは、通常のアンインストール手順でインストール・アンインストール・修復エラーが繰り返し発生する場合に使用する。
使用後は、他の .NET Framework バージョンの修復または再インストールが必要になる場合がある。


トラブルシューティング

.NET Framework修復ツール

Microsoft .NET Framework Repair Toolは、.NET Framework のインストール・アップデート・修復エラーを自動的に修復するツールである。

  • .NET Framework 3.5 SP1〜4.8.1までのバージョンをサポートする。
  • ツールが既知の問題を自動的に検出し、修復を行う。
  • インストールや修復が繰り返し失敗する場合に使用する。


一般的なエラーと対処法

下表に、よくあるエラーと対処法を示す。

一般的なエラーと対処法
エラー 対処法
0x800736FD (ファイルが見つからない) オフラインインストーラーを使用する。
または、Windows インストールメディアを使用してOSを修復する。
MSI エラー 1603 (インストール失敗) .NET Framework Repair Toolを実行する。
解決しない場合は、Cleanup Toolで削除後、再インストールする。
管理者権限不足 インストーラーを右クリックして、[管理者として実行]を選択する。
ディスク容量不足 4.5[GB]以上の空き容量を確保してから再実行する。
DISMエラー (.NET Framework 3.5インストール時) インストールメディアのパスとOS バージョンが一致していることを確認する。


Windows Update との関係

.NET Framework 4.5以降は、Windowsのコンポーネントとして位置づけられており、Windows Updateを通じてセキュリティパッチが配布される。

  • .NET Frameworkのサポートは、親のWindows OSのライフサイクルに従う。
  • Windows Updateを無効化している環境では、.NET Frameworkのセキュリティ更新が適用されないため注意が必要である。
  • Windows Updateで.NET Frameworkの更新プログラムが配布された場合、適用後に再起動が必要になることがある。