環境
- Windows 10 Pro 2004
- .NET Framework 4.8 Dev Pack
- Visual Studio Community 2019
- Docker Desktop for Windows 2.5.0.1 (49550) / Windows Container
- Windows Server Core:ltsc2019のDockerイメージ
.NET Framework 4.8 Dev Packをホスト環境にインストールする
Download .NETから.NET Framework 4.8 Dev Packをダウンロードする。

.NET Framework 4.8 Dev Packのインストーラーを実行する。
ndp48-devpack-enu.exe
参考情報
- Download .NET / Downloads for .NET Framework and .NET Core, including ASP.NET and ASP.NET Core
Visual Studio Community 2019をホスト環境にインストールする
Visual Studio CommunityからVisual Studio Community 2019をダウンロードする。一番下にCommunity,Professional,Enterpriseが並んでいる。

Visual Studio Community 2019のインストーラーを実行する。
vs_community__1310957470.1588837345.exe
C#を使ったユニバーサルWindowsデスクトップ開発のワークロードを追加する。
ホスト環境を再起動する。
参考情報
- Visual Studio Community / Free, fully-featured IDE for students, open-source and individual developers
.NET Frameworkのバージョンを調べるツールをGitHubから取得する
GitHubのリポジトリからプロジェクトを取得する。プロトコルをhttps、ユーザー情報なしでアクセスする。
https://github.com/jmalarcon/DotNetVersions
Visual Studio Community 2019でプロジェクトを開く。
D:/var/workspace/github/DotNetVersions/DotNetVersions.sln
『プロジェクトのターゲットフレームワークがインストールされていません』エラーが表示される。ターゲットを.NET Framework 4.6.1に変更して続ける。

ソリューションエクスプローラーでプロジェクトを右クリックしてプロジェクトの再読み込みを行う。


プロジェクトメニュー > DotNetVersionsのプロパティ > アプリケーション > 対象のフレームワークで.NET Framework 4.8を選択する。

ツールメニュー > オプション > 環境 > フォントおよび色でテキストエディターのフォントを変更する。

リリースビルドでビルドメニューからソリューションのリビルドを行う。

出力された.exeファイルを実行する。"-b"オプションで実行後に終了させる。
$ cd D:\var\workspace\github\DotNetVersions\bin\Release $ ./DotNetVersions.exe -b 4.0.0.0 4.8.04084
参考情報
- How to: Determine which .NET Framework versions are installed | Microsoft Docs
Windows Server Core:ltsc2019のDockerイメージで.NET Frameworkのバージョンを調べるツールを実行する
Docker Desktop for WindowsをWindows Containerに切り替える。システムトレイのDockerアイコンを右クリックしてSwith to Windows containersを選択する。エラーメッセージが表示された場合は管理者権限のPowerShellコンソールでPowerShellスクリプトを実行してHyper-Vの機能を有効にする。その後、ホスト環境を再起動する。

An error occurred Container feature is disabled. Enable it using the PowerShell script (in an administrative PowerShell) and restart your computer before using Docker Desktop: Enable-WindowsOptionalFeature-Online-FeatureName $("Microsoft-Hyper- V", "Containers") -All
Windows Server Core:ltsc2019のDockerイメージを取得する。
Container Base ImageからWindows Server Coreを選択する。タグがltsc2019と20H2の2つあるのでltsc2019を選択する。
$ cd D:\var\workspace\github\DotNetVersions $ docker pull mcr.microsoft.com/windows/servercore:ltsc2019
イメージのサイズは5.12GBになっている。

Dockerfileを作成する。
D:\var\workspace\github\DotNetVersions\Dockerfile
FROM mcr.microsoft.com/windows/servercore:ltsc2019 WORKDIR /app COPY ./bin/Release . CMD [ "cmd", "/S", "/C", "C:\\app\\DotNetVersions.exe", "-b" ]
Dockerイメージをビルドする。
$ cd D:\var\workspace\github\DotNetVersions $ docker build --tag windowsservercore:dotnetversions .

Dockerイメージをコンテナとして実行する。"--detach"オプションでバックグラウンド実行にすると出力が表示されない。
$ cd D:\var\workspace\github\DotNetVersions $ docker run --name WindowsServerCore-DotNetVersions windowsservercore:dotnetversions 4.0.0.0 4.7.03190
参考情報
- Switch between Windows and Linux containers | Docker Desktop for Windows user manual | Docker Documentation
- Get started: Prep Windows for containers | Microsoft Docs
- Windows Container Base Images | Microsoft Docs
- Windows Server Core | Docker Hub
- Sample Dockerfile | Build and run your image | Docker Documentation
- Run your image as a container | Build and run your image | Docker Documentation