chocoのアプリケーションエラーの対処
windows11でchocolateyを使っている環境。
windows11を更新した直後に、chocoが使えなくなった。
windowsを起動するたびに、エラーメッセージも表示される。
chocoと入力してもなにも起こらなくなった。
0xc0000135 アプリケーションエラー アプリを終了させてください。
のようなダイアログボックスでメッセージが表示される。
原因(推測)
Net Framework 3.5は、最新のWindows11アップデートでは使用できない。
これが原因となって、サードパーティーのアプリであるchocoが使えなくなった。
対応
chocoがバックグラウンドでNet Framework 3.5を必要としているのに、使えないのでこのエラーが出る。そのため、使えるようにする。
管理者権限でコマンドプロンプトを開く
下記のコードを順番に実行し、パソコンを再起動する。
>dism /online /enable-feature /featurename:netfx3 /all
>dism /online /enable-feature /featurename:WCF-HTTP-Activation
//エラーがでて実行できなかったら、末尾に /all を付けて再度実行
>dism /online /enable-feature /featurename:WCF-NonHTTP-Activation
意味も分からず実行するのは気持ち悪いので、わかる範囲で調べてみました。
dismコマンドは、Windowsのシステムイメージのエラーを確認し修復するためのコマンドラインツール。
dism /online /enable-featureは、dismコマンドを利用して、オンラインから、可能な機能をインストールするという意味。今回有効にしたいNet Framework 3.5は、/featurename:netfx3 /allという名称にすることで、インストールができる。
WCF-HTTP-ActivationのWCFとは、Windows Communication Foundationの略で、.NET Frameworkの機能で、ネットワークを通じて通信するための機能。
WCF-HTTP-Activationと、WCF-NonHTTP-Activationという機能も有効化する必要がある。
下記コマンドを管理者権限で実行すると、各機能と状態がセットで表示され、どの機能が有効でどの機能が無効なのかについて現在の状況が確認できる。
Dism /online /Get-Features
上記によりWCF-HTTP-Activationと、WCF-NonHTTP-Activationが有効になっていることを確認できる。
WCF-HTTP-Activationと、WCF-NonHTTP-Activationを有効にすることによって、httpプロトコルを使った通信と非httpプロトコルを使った通信をできるようにしておく必要があるみたい。
調べたけど詳しいことはわからなかったけど、恐らく上記のような理由だと思います。
Net Framework 3.5がちゃんと動くために必要な機能と考えておけば多分よさそうです。
以上で、chocoが正常に動くようになり、エラーも出なくなりました。