致命的なエラーが発生しました。フォルダ[/usr/share/dotnet/host/fxr]が存在しません。質問する

致命的なエラーが発生しました。フォルダ[/usr/share/dotnet/host/fxr]が存在しません。質問する

アップデート後に dotnet にアクセスできません。dotnet と vscode を再インストールしても解決しませんでした。

Ubuntu 22.04 で実行すると、dotnet --info次の出力が生成されます。

致命的なエラーが発生しました。フォルダ [/usr/share/dotnet/host/fxr] が存在しません

ベストアンサー1

.NET (Core) が Linux 向けに初めてリリースされたとき、公式の Ubuntu リポジトリではまだ利用できませんでした。そのため、代わりに多くの人が Microsoft APT リポジトリを追加してインストールしました。

現在、パッケージは Ubuntu リポジトリの一部であり、Microsoft パッケージと競合しています。このエラーは、パッケージの混在によって発生します。

したがって、どちらを使用するかを選択し、混在しないようにする必要があります。個人的には、Microsoft パッケージの方が最新の状態に保たれると考え、Microsoft パッケージを使用することにしました。

まず、既存のパッケージをすべて削除してクリーンな状態にします。

sudo apt remove dotnet* aspnetcore* netstandard*

次に、 に次の内容のファイルを作成します/etc/apt/preferences.d(99microsoft-dotnet.prefこのようなディレクトリ内のファイルは通常、予測可能な順序で並べ替えおよびロードされるように 2 桁の数字がプレフィックスとして付けられるという規則に従って*.d、 という名前を付けました)。

Package: *
Pin: origin "packages.microsoft.com"
Pin-Priority: 1001

次に、通常のアップデートとインストールを実行します。

sudo apt update && sudo apt install -y dotnet-sdk-8.0

上記の例では .NET 8 を示していますが、必要に応じて別のバージョンに置き換えてください。.NET SDK は並行してインストールされるため、複数のバージョンをインストールすることもできます。

公式のUbuntuパッケージを使用する場合上記のように既存のパッケージをすべて削除しますが、エントリを作成する代わりに/etc/apt/preferences.d、Microsoft リポジトリを削除するだけです。

sudo rm /etc/apt/sources.list.d/microsoft-prod.list
sudo apt update
sudo apt install dotnet-sdk-7.0

ただし、Microsoft リポジトリには PowerShell、SQL Server コマンドライン ツールなどの他のパッケージも含まれているため、削除することは望ましくないことに注意してください。

APT 構成をこれらのパッケージだけに限定することは可能だと思いますが、今のところはこれでうまくいっています。Microsoft と Ubuntu が協力して、この問題を解決してくれることを期待しています。

この問題とさまざまな解決策に関する詳細情報は、こちらをご覧ください:

おすすめ記事