はじめに
Flutterの環境構築をしていたら、「Desktop development with C++ (C++によるデスクトップ開発)」のインストールに詰まったので共有。
実際には「Desktop development with C++ (C++によるデスクトップ開発)」のインストールに含まれる「Microsoft Visual C++ 2015-2022 Redistributable (X64)」、「同(X86)」のインストールに失敗するというお話のため、Flutter用途以外の人にもお役に立てるかもしれません。
症状
flutter doctor で環境診断をすると、こんな感じでした。
※Visual Studioのバージョンは何となく(20xx.xx.xx.xxで)隠しました。Visual Studioがインストールされていれば、そのバージョンが表示されるかと思います。
> flutter doctor
<中略>
[!] Visual Studio - develop Windows apps (Visual Studio Community 20xx xx.xx.xx)
X Visual Studio is missing necessary components. Please re-run the Visual Studio installer for the "Desktop
development with C++" workload, and include these components:
MSVC v142 - VS 2019 C++ x64/x86 build tools
- If there are multiple build tool versions available, install the latest
C++ CMake tools for Windows
Windows 10 SDK
そこで、Visual Studio Installerから「Desktop development with C++ (C++によるデスクトップ開発)」をインストールしようとすると、途中でエラーが表示されました。
※実際のエラー画面を取り漏れてしまい、Microsoft Communityからの引用なんですが、次のようなエラーでした。表示されるランタイムのバージョンが少し違いましたが、同じメッセージです。
その後、次のようなエラーメッセージがでました。
どうやら古いバージョンのC++ 2019ランタイムが削除できないことに起因している模様。
じゃあ、直接コントロールパネルから削除(Microsoft Visual C++ 2015-2022 Redistributableのアンインストール)を試みようとすると、そこでも失敗(リストには出ているのに、「既にないよ」のようなエラー内容)
解決方法
※私の解決方法を下記に記載しますが、対応は自己責任でお願いします。
結論から言えば、上記画像の引用1(リンク)に回答されている内容でよかったのかもしれないが、直接レジストリの知らない箇所を触るのは怖い。
ということで、このMS公式ツール(プログラムのインストールとアンインストールのトラブルシューティング ツール)を使いました。
Fix problems that block programs from being installed or removed
上記リンクからツール(MicrosoftProgram_Install_and_Uninstall.meta.diagcab)をダウンロードして、実行します。
-
アンインストールしたいランタイムを選択
(注)下図は修正後の画像です。
実際に削除したランタイムは「Microsoft Visual C++ 2019 X64 Minimum Runtime」、「Microsoft Visual C++ 2019 X64 Additional Runtime」、「Microsoft Visual C++ 2019 X86 Minimum Runtime」、「Microsoft Visual C++ 2019 X86 Additional Runtime」を削除しました。
-
PCの再起動(念のため)
-
Visual Studio Installerから「Desktop development with C++ (C++によるデスクトップ開発)」をインストール(正常に完了)
-
flutter doctor で診断
> flutter doctor
<中略>
[√] Visual Studio - develop Windows apps (Visual Studio Community 20xx xx.xx.xx)
無事にFlutterの環境構築(Visual Studio箇所)も完了しました。
補足
「Desktop development with C++ (C++によるデスクトップ開発)」のインストールでは、C++ランタイム以外のインストールもされてしまいます。C++ランタイムだけをインストールしたいという方は こちら から最新バージョンのランタイム(vc_redist.x64.exe、vc_redist.x86.exe)を入手できます。
※2023年9月時点:2015-2022 C++ 再頒布可能パッケージ
おわりに
解決までに無駄に時間が掛かりました。
ネットで色々調べていると最悪Windowsの再インストールやリカバリが必要、みたいな内容もちらほら見かけ、それだけは避けたいと考えてました。
私みたいに詰まってしまった方のお役に立てたら幸いです。