.NET Install Manager (DNIM) の紹介

Last Update:
このエントリーをはてなブックマークに追加

こんにちは、Japan Developer Support Core チームです。 Visual Studio やスタンドアロン インストーラーなど、複数の方法で .NET を導入した Windows 端末では、SDK やランタイムの状態を把握しにくい場合があります。今回は、.NET Install Manager (DNIM) の用途、調査・削除予定の確認方法、.NET Uninstall Tool との違いを紹介します。

DNIM とは

DNIM は、Windows に導入された .NET SDK やランタイムを検出し、削除や更新を行うコマンドライン ツールです。複数の方法で .NET を導入している端末でも、バージョンやサポート状況を調べてから対象を絞り込むことができます。本記事執筆時点の DNIM は、.NET 8 がサポートする Windows のバージョンに対応します。なお、本記事執筆時点では DNIM はプレビュー段階となり、提供状況や使用方法は変更される可能性があります。最新情報は .NET Install Manager のドキュメント を参照してください。

主な用途と解決する課題

.NET は様々なアプリケーションから利用され、Visual Studio やスタンドアロン インストーラーなど導入方法も複数あるため、端末にどの種類・バージョンがインストールされているかを一元的に把握しにくいことがあります。セキュリティ修正の適用やサポート終了への対応では、対象の .NET を特定して更新や削除を検討する必要があります。一方、古いバージョンを見つけても、利用中のアプリケーションや開発環境への影響を確認せずに削除することはできません。まずインストール状況とサポート状況を確認し、その結果を基に対応対象を選ぶことが重要です。

DNIM の scan コマンド を使うと、インストール済みの .NET の種類、バージョン、サポート状況を確認できます。既定では、Windows Installer の MSI と、複数の MSI をまとめて配布するインストーラー (バンドル) を検出します。調査した結果を基に製品バージョンやサポート フェーズなどで対象を絞り込めるため、サポートが終了した .NET の整理やセキュリティ対応のための棚卸しに役立ちます。

.NET Uninstall Tool との違い

.NET Uninstall Tool と DNIM は、一方が他方を置き換える関係ではありません。対象 OS、扱えるインストール、実行できる操作が異なるため、目的に応じて使い分けます。主な違いは次のとおりです。

項目 .NET Uninstall Tool DNIM
主な用途 開発環境の古い SDK・ランタイムの整理 Windows 端末上の .NET の調査・削除・更新
導入方法 Windows では winget や MSI でインストール 単一の実行ファイルをコピーして利用
対応 OS Windows、macOS Windows
インストール情報の確認 list コマンドで削除可能な SDK・ランタイムを確認 MSI、バンドル、Visual Studio 由来のインストール情報を分析
削除時の制限 削除対象は導入方法やバージョンによって異なる 共有 MSI は依存関係がなくなった場合に削除。Visual Studio 由来の .NET は Visual Studio での削除を検討
.NET の更新 対応しない スタンドアロンのバンドルに対応
大規模な端末管理 主目的ではない Intune や Microsoft Configuration Manager などを通じた配布・実行を想定

削除対象の詳細は、.NET Uninstall Tool の概要、DNIM の FAQ、DNIM が管理するインストール を参照してください。

DNIM の使用例

以下では、scan でインストール情報を確認し、query products で製品情報を確認してから、uninstall --what-if で削除候補を確認します。コマンド例では x64 用の実行ファイルを使用します。オプションや出力項目については、DNIM の scan、query products、uninstall のドキュメントを参照してください。

scan でインストール済みの .NET を確認する

端末にインストールされている .NET の種類やサポート状況を確認するには、scan を使用します。サポートが終了したものだけに絞る場合は --support-phase eol を指定します。

1
2
dnim-win-x64.exe scan
dnim-win-x64.exe scan --support-phase eol

query products で製品情報を確認する

製品ごとの最新バージョンやサポート フェーズ、サポート終了予定日を調べるには query products を使用します。query products の出力は 端末にインストール済みの .NET の一覧ではありません。

1
2
dnim-win-x64.exe query products
dnim-win-x64.exe query products --support-phase eol

uninstall --what-if で削除候補を確認する

--what-if はシステムを変更せず、予定される削除を表示します。絞り込みなしの uninstall は端末上のすべての .NET コピーの削除を試みます。ただし、依存関係などにより削除できないものもあります。--what-if を外す前に表示された対象を必ず確認してください。

1
2
dnim-win-x64.exe uninstall --what-if
dnim-win-x64.exe uninstall --support-phase eol --what-if

削除前に影響と復旧方法を確認する

削除候補を確認したら、アプリケーションや Visual Studio への影響も調べてください。必要なインストーラーを確保して復旧できるようにしたうえで、まず検証環境や一部の端末で削除を試します。Visual Studio 由来のコンポーネントは Visual Studio 側での削除を先に検討してください。DNIM で実際に削除する際は、管理者権限を使用してください。

まとめ

DNIM を使用すると、端末にインストールされている .NET と製品ごとのサポート情報を確認し、削除候補を絞り込めます。削除を実行する前に uninstall --what-if で対象を確認し、アプリケーションや開発環境への影響と復旧方法を検討してください。組織で展開する場合は、検証環境や一部の端末で確認してから段階的に進めることが重要です。


本ブログの内容は弊社の公式見解として保証されるものではなく、開発・運用時の参考情報としてご活用いただくことを目的としています。もし公式な見解が必要な場合は、弊社ドキュメント (https://learn.microsoft.com や https://support.microsoft.com) をご参照いただくか、もしくは私共サポートまでお問い合わせください。