時代に翻弄されるエンジニアのブログ

ゲームプログラマをやっています。仕事やゲームや趣味に関してつらつら書きたいと思います。

「Error: The reference assemblies for .NETFramework,Version=v4.7.1 were not found. 」 の対処法について

f:id:tkymx83:20200823170718j:plain

こんにちは、タクという名前でブログをやっています。

今日は、.Net framework を間違ってアップデートしてしまって、Unity の C# コードを OmniSharp を使って解析できなかったときの対処法を書いていきたいと思います。

エラー内容

エラー文は
「Error: The reference assemblies for .NETFramework,Version=v4.7.1 were not found.」の部分です。

Unity のバージョンを変えたり、新しい .Net framework を使用すると、 VS Code 上のコンソールで上記のようなエラーが発生します。

この状態では、インテリセンスも使えませんし、変数の定義に移動などの機能も使うことができなくなります。

対処法

mono の再インストールをする

公式から最新の mono のパッケージをダウンロード
www.mono-project.com


f:id:tkymx83:20200823165434p:plain

今回は VSCode なので、Stable Cannnel の方を使います。
ダブルクリックしてインストール

ターミナルから

mono -V 

を実行して最新になっていることを確認

VS Code の setting を変更
  • omnisharp: Use Global Mono を always にする

f:id:tkymx83:20200823165803p:plain

  • omnisharp: Mono Path を 設定

「Edit in setting.json」 を押すと、エディター画面に映るので、以下のようにパスを設定

f:id:tkymx83:20200823170945p:plain

which mono などを実行すると、mono のパスが分かります。

VS Code を再起動して実行

エラーがなく、インテリセンスや定義へ移動などの機能が使えることを確認

終わりに

どうやら、.NETFramework,Version=v4.7.1 を使うにあたって、現状の mono のバージョンが古かったようです。

最新の Unity などに切り替える場合は注意が必要です。

余談

プロジェクトの setting.json と 全体に setting.json があるので注意