rksoftware

Visual Studio とか C# とかが好きです

winget で .NET の Preview 環境を作る

最近世界中で .NET 9 の Preview 版が話題です。
皆さん当然インストールして確認をしているでしょう。私もです。

■ いつもと違うインストールしよう

いつも、サイトからインストーラーをダウンロードして実行したりなどしていました。けれど今回からはちょっとひねって winget でインストールしてみたいと思います。

■ 現在の状況

まずは現在の .NET のインストール状況を確認します。
最近作ったばかりの環境なので少しだけしか入っていませんね。

dotnet --info
.NET SDKs installed:
  8.0.200 [C:\Program Files\dotnet\sdk]
  8.0.202 [C:\Program Files\dotnet\sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 8.0.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 8.0.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 8.0.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 8.0.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.WindowsDesktop.App 8.0.2 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
  Microsoft.WindowsDesktop.App 8.0.3 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

■ アンインストール

せっかくなので .NET をアンインストールしてからインストールしてみたいと思います。
.NET のアンインストール。そうそうする機会がないと思うので、せっかくです。この機会にやってみましょう。

設定アプリ からアンインストールを試みます。

ダメでした。Visual Studio でインストールしているのでアンインストールできないようです。そういうものなのですね。

ということでメッセージボックスで指示された通り、Visual Studio の 変更 でチェックを外してアンインストールしてみます。

dotnet --info
Error: [C:\Program Files\dotnet\host\fxr] does not exist

アンインストールできました。

■ winget のインストール

winget のインストールの方法、実はよくわかっていません。
ストアで配信されているのですが、ストアの検索で見つけられません。次のサイトからリンクをたどっていくと見つかります。
learn.microsoft.com

winget という名前ではなく アプリ インストーラー というアプリになっていますね。でもこの名前でもストアでみつからないんですよ。

■ winget

まずは winget の使い方を確認してみます。

winget
v1.7.10861 の Windows パッケージ マネージャー
Copyright (c) Microsoft Corporation. All rights reserved.

WinGet コマンド ライン ユーティリティを使用すると、コマンド ラインからアプリケーションやその他のパッケージをインストールできます。

使用法: winget  [<コマンド>] [<オプション>]

使用できるコマンドは次のとおりです:
  install    指定されたパッケージをインストール

コマンドは省略しました。普通の感じで使えるみたいですね。しかしインストールにはパッケージ名が必要なので、.NET がどういう名前のパッケージか確認をしてみます。

winget search dotnet
Microsoft .NET SDK 9.0 Preview      Microsoft.DotNet.SDK.Preview         9.0.100-preview.3.24204.13 Tag: dotnet winget
Microsoft .NET SDK 8.0              Microsoft.DotNet.SDK.8               8.0.204                    Tag: dotnet winget

Microsoft.DotNet.SDK.Preview というのが見つかります。これですね。

■ .NET をインストール

winget install Microsoft.DotNet.SDK.Preview

.NET のインストーラが動くので UI が上がってきました。

しばらく待つと完了です。ターミナルにも環境のメッセージが出ています。

インストールが完了しました

■ .NET の確認

dotnet --info
.NET SDKs installed:
  9.0.100-preview.3.24204.13 [C:\Program Files\dotnet\sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 9.0.0-preview.3.24172.13 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 9.0.0-preview.3.24172.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.WindowsDesktop.App 9.0.0-preview.3.24175.3 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

インストールできました。

■ アップデートの際は

こんな感じ。アップデートできるパッケージがリストされます。

 winget upgrade
Windows ターミナル                          Microsoft.WindowsTerminal   1.19.10573.0        1.19.10821.0         winget

 winget upgrade Microsoft.WindowsTerminal

ちなみに upgrade コマンドを確認するとエイリアスで update が使えるそうです。こちらのほうが手癖でタイプしやすそうですね。

winget upgrade --help
次のコマンド エイリアスを使用できます:
  update

複数指定

アップデートの際は、パッケージを列挙して複数指定できるようです。次のように。
せっかくなので、環境で見つかったパッケージを複数アップデートしてみました。

winget update Docker.DockerDesktop Microsoft.Teams.Free

■ まとめ

wingetWinGet 、サイトやヘルプなどでどちらの表記も出てきますが、どっちがかっこいい表記なんでしょう?