Windowsアプリの実行に必要な「.NET Desktop Runtime 6(x64)」の配布URLが、6.0.7のようなバージョン付きで頻繁に変わり、社内KBや手順書の更新が追いつかない――そんなときに役立つ“リンクを固定したまま最新版へ誘導する方法”をまとめます。
結論:.NET Desktop Runtime 6(Windows x64)は「aka.ms の固定リンク」で最新版へ誘導できる
.NET Desktop Runtime 6(Windows x64)を配布したい場合、Microsoftが提供する aka.ms の固定リンク(リダイレクト)を使うのが最も手堅い解決策です。リンク自体は変えずに、常に .NET 6 系(6.0.x)の最新版インストーラーへ誘導できます。
特にナレッジベースで困りがちなのが、公式ダウンロードページで「Windows x64」を右クリックしてリンクをコピーすると、URLに runtime-desktop-6.0.7 のようなパッチ番号が含まれた“その時点の固定URL”になってしまう点です。数週間〜数か月でパッチが進むと、そのリンクは古くなり、最新に差し替える作業が発生します。
aka.ms のリンクは、利用者をダウンロードページに迷わせず、Desktop Runtime(デスクトップアプリ実行に必要)の実体(.exe)へ直接誘導できるため、SDKやASP.NET Coreを誤ってダウンロードしてしまう事故も減らせます。
コピペで使える:.NET 6(Windows x64)の固定リンク一覧
まずは「欲しいものはこれ」だけを提示します。社内KBには、原則として Desktop Runtime のリンクだけを載せるのが安全です(誤ダウンロード対策)。
| 用途 | 固定リンク(aka.ms) | 誰に向けたものか |
|---|---|---|
| .NET Desktop Runtime 6(Windows x64) | https://aka.ms/dotnet/6.0/windowsdesktop-runtime-win-x64.exe | WinForms / WPF 等のデスクトップアプリを実行したい利用者向け |
| ASP.NET Core Runtime 6(Windows x64) | https://aka.ms/dotnet/6.0/aspnetcore-runtime-win-x64.exe | Webアプリ(サーバー側)を実行したい利用者向け |
| .NET Runtime 6(Windows x64) | https://aka.ms/dotnet/6.0/dotnet-runtime-win-x64.exe | コンソール等のアプリを実行したい利用者向け |
| .NET SDK 6(Windows x64) | https://aka.ms/dotnet/6.0/dotnet-sdk-win-x64.exe | 開発者向け(ビルドや開発が必要) |
上の4本は、Microsoft Learn のQ&Aや .NET の公式リポジトリの議論でも紹介されている“定番の固定リンク”です。
Desktop Runtime・ASP.NET Core・Runtime・SDKの違いを、誤ダウンロードしない観点で整理
ダウンロードページに飛ばすと、利用者が「どれを入れたらいいの?」で迷い、結果的にSDKを入れたり、必要なランタイムと違うものを入れたりしがちです。ここは社内KBに載せる前提で、誤解が起きにくい説明にしておくのがポイントです。
| 名前 | 主な用途 | 含まれるもの | よくある勘違い |
|---|---|---|---|
| .NET Desktop Runtime | Windowsデスクトップアプリ(WinForms/WPFなど)を実行 | .NET Runtime を内包(別途入れなくてOK) | 「Runtimeだけ入れれば足りる」と思い、Desktop Runtimeを入れ忘れる |
| ASP.NET Core Runtime | ASP.NET Core(Web/サーバーアプリ)を実行 | ASP.NET Core の共有フレームワーク | デスクトップアプリなのにASP.NET Coreを入れてしまう |
| .NET Runtime | コンソールなど“基本”の.NETアプリを実行 | .NET Runtime | WPF/WinFormsが必要なのにRuntimeだけで済むと誤解 |
| .NET SDK | 開発・ビルド・テスト | SDK + 主要ランタイム一式 | 「とりあえずSDK」を入れて不要な環境差を作る(運用負荷が増える) |
.NET Desktop Runtime は「.NET Runtime を含むため別途インストール不要」と、公式のダウンロードページでも説明されています。KBに一文足すだけで問い合わせが減るのでおすすめです。
注意点:.NET 6 はサポート終了(EOL)。“最新版”は今後増えない可能性が高い
運用上もう一つ重要なのが、.NET 6 自体がサポート終了(EOL)であることです。Microsoftのサポートポリシーでは、.NET 6 の最新パッチは 6.0.36、パッチ公開日は 2024年11月12日、同日がサポート終了日として掲載されています。
つまり、aka.ms の固定リンクは「リンクを変えずに最新版へ誘導できる」という意味で今も有効ですが、.NET 6 の場合は最終的に 6.0.36 が“固定の最新版”として落ち着いている状況です。既存アプリの都合で .NET 6 が必要な端末には有用ですが、新規導入や長期運用を見据えるなら、サポートされているLTS(例:.NET 8 / .NET 10)への移行計画もセットで検討すると安全です。
セキュリティ観点の補足
サポート終了後は、脆弱性修正や品質修正の配布が原則止まります。端末全体のリスク評価(利用シーン、ネットワーク分離、更新ポリシー)と合わせて判断してください。Microsoftのサポートポリシーでは、サポート終了版の利用はリスクになる旨が明記されています。
社内KBに載せるならこう書く:誤ダウンロードを避けるテンプレ
「リンクだけ貼って終わり」にすると、利用者は不安になって別のページを探し、結果的にSDKなどを落としてしまいがちです。KBには、次の3点を明記すると運用が安定します。
- 対象:Windows 64bit(x64)
- 必要なもの:.NET Desktop Runtime 6(Desktop Runtime)
- 補足:Desktop Runtime には .NET Runtime が含まれる(Runtime単体は不要)
貼り付け用の例文(そのまま社内KBに流用できます)。
【Windowsデスクトップアプリ実行に必要】
.NET Desktop Runtime 6(Windows x64)をインストールしてください。
※Desktop Runtime には .NET Runtime が含まれるため、Runtime単体の追加は不要です。
ダウンロード(固定リンク):
https://aka.ms/dotnet/6.0/windowsdesktop-runtime-win-x64.exe
利用者向け:インストール前に“すでに入っているか”を確認する方法
端末によっては既に .NET Desktop Runtime 6 が入っていることがあります(他アプリの同梱や、過去の導入作業でインストール済みなど)。二重導入を避けたい場合は、次の確認方法が簡単です。
「設定」から確認する
Windows の「設定」→「アプリ」→「インストールされているアプリ」で .NET と検索し、Microsoft Windows Desktop Runtime – 6.0.x (x64) のような項目があれば導入済みです。
コマンドで確認する(現場向け)
ランタイムでも dotnet コマンドが入るため、ターミナルが使える環境ではこちらが確実です。
dotnet --list-runtimes
出力例では、次のように Microsoft.WindowsDesktop.App 6.0.xx があれば Desktop Runtime 6 が入っています(xxはパッチ番号)。
Microsoft.WindowsDesktop.App 6.0.36 [C:\\Program Files\\dotnet\\shared\\Microsoft.WindowsDesktop.App]
管理者向け:WinGetで「常にその系統の最新版」を入れる運用
社内端末や多数PCへ配布するなら、WinGet(Windows Package Manager)での導入も選択肢になります。特定のIDを指定してインストールすれば、基本的にそのパッケージの最新バージョンが導入されます(インストール時点での最新版)。
.NET Desktop Runtime 6 の代表的なコマンドは次のとおりです。
winget install -e --id Microsoft.DotNet.DesktopRuntime.6
このIDは、WinGetのアプリ紹介ページなどでも案内されています。
| 目的 | コマンド例 | ポイント |
|---|---|---|
| インストール | winget install -e --id Microsoft.DotNet.DesktopRuntime.6 | -e はID完全一致。社内手順書では付けておくと事故が減ります。 |
| アップグレード(更新) | winget upgrade -e --id Microsoft.DotNet.DesktopRuntime.6 | 月次更新の“取りこぼし”を減らす運用で有効です。 |
| 導入済み確認 | winget list Microsoft.DotNet.DesktopRuntime | 端末が複数バージョンを保持している場合の棚卸しに便利です。 |
なお、WinGetが使えない(Store無効化、プロキシ制限、オフライン端末など)環境では、aka.ms の直リンクで落としたインストーラーを社内配布(ファイルサーバーや配布ツール)するほうが現実的なこともあります。
サイレントインストール(/quiet)で配布したい場合の基本
手作業でクリックさせる運用を避けたい場合は、インストーラーのコマンドラインオプションを使います。Microsoft Learn では、/install /quiet /norestart のようなサイレントインストールの基本オプションが案内されています。
windowsdesktop-runtime-6.0.36-win-x64.exe /install /quiet /norestart
/install:インストール/quiet:UIを表示しない(無人)/norestart:勝手に再起動しない
サイレント導入の実務では、終了コードも合わせて見るのが鉄則です。公式ドキュメントでは、成功時は 0、再起動が必要な場合は 3010 が返る例が示されています。自動配布ツール側の判定条件に組み込むとトラブルが減ります。
よくあるトラブルと対処(問い合わせを減らすコツ)
「入れたのに動かない」「別のものを入れてしまった」を、KBで先回りして潰すと運用が一気に楽になります。現場で多いパターンをまとめます。
| 症状 | 原因の例 | 対処 |
|---|---|---|
| インストール後も『Desktop Runtime を入れてください』が消えない | x86/x64の取り違え、必要なのがDesktopではなくASP.NET Core、または逆 | アプリの要件を確認し、Windows x64なら本記事のDesktop Runtimeリンクから入れ直す |
| ダウンロードページに飛ばされて迷子になる | ダウンロードページURLを貼っている/リンクが期限切れ | aka.ms の固定リンクをKBに掲載し、目的のランタイム名も明記する |
| 社内ネットワークでダウンロードが失敗する | プロキシやセキュリティ製品で短縮URL(aka.ms)が制限 | ドメイン許可(aka.ms)を検討。難しければ公式ダウンロードから取得し社内配布 |
| 古い 6.0.x が残ってしまう | 更新の適用順や配布経路の混在 | .NET 6 の更新は「最新が入ると前の更新が削除される」挙動がある。配布経路を統一する |
将来の移行を見据える:固定リンクの考え方は .NET 8 などでも同じ
今回の主題は .NET 6 ですが、実務では「アプリの要件が変わり、.NET 8 へ移行した」などもよく起きます。固定リンクの考え方自体は同じで、Microsoftのドキュメントでも .NET 8 の Desktop Runtime を aka.ms のURLで取得する例が示されています。
たとえば .NET 8 の Desktop Runtime(x64)は次の形式です(参考)。
https://aka.ms/dotnet/8.0/windowsdesktop-runtime-win-x64.exe
KB運用の観点では、「固定リンク + 対象バージョン(6/8/10など) + 用途(Desktop Runtime)」の3点セットをテンプレ化しておくと、将来の移行でも差し替えが最小限で済みます。
まとめ:KBに載せるなら「Desktop Runtime 6(x64)のaka.ms直リンク」を1本に絞る
.NET Desktop Runtime 6(Windows x64)を、リンク更新なしで“常に最新版へ誘導”したいなら、答えはシンプルです。aka.ms の固定リンクを使い、KBには「Desktop Runtime」だと明記して掲載しましょう。利用者が迷いにくくなり、運用コストも下がります。
再掲:Desktop Runtime 6(Windows x64)固定リンク
https://aka.ms/dotnet/6.0/windowsdesktop-runtime-win-x64.exe

コメント