プラスプラス開発者ブログ

岩手県盛岡市のシステム開発会社「株式会社プラスプラス」の開発者ブログです。

Unity 2018.3とVisual Studio Codeを組み合わせるとゴネる

AndroidStudio に慣れすぎて他の環境を覚えるのが面倒くさーい。
今さらUnityの環境構築している「軽く熊」です。

なぜだかVisual Studio Codeがエラーを吐いているんですよー。
まぁ、動いているので放置プレイでも良いのですが…

今日はVisual Studio Codeの「.NET v4.5 アセンブリ無いエラー」についてです。

Unity 2018.3.x をインストールしてVisual Studio Codeを使用していると
Visual Studio Code「エラーがあるよ。見る?」と警告を出してきます。

見たくないのですがしょうがないので見る事にします。

The reference assemblies for framework ".NETFramework,Version=v4.5" were not found.

Windows10を使っているので.NET4.xのランタイムは含まれているハズなのに…

調べてみると.NET4.xは互換性があるのでマイナーバージョン違いで
複数インスト-ルされる事は無い
ようでした。

問題の方の原因を調べてみるとunityが自動生成する
csprojのtargetframeworkに.NET 4.5 を要求する記述があるからとの事。
Microsoft からダウンロード出来るのはv4.5.2。
バージョンが合わないので当然エラーになります。

targetframeworkを4.5.2に書き換えても自動生成で4.5に戻るので意味なし。

これ…Unityのバグじゃないでしょうか…。
最新バージョンに更新すれば直るかもしれませんが
業務の都合上、Unityのバージョンは簡単に変えられません。


あまりお勧めしませんが海外に修正する方法の投稿がありましたので
https://github.com/Unity-Technologies/vscode-unity-debug/issues/115

google先生に翻訳して貰いました。

数時間後、私はついに解決策を見つけました。

Unityはあなたのマシンの最新のバージョンではなく、
ターゲットの.netフレームワークを4.5にデフォルト設定しています。
あなたはcsprojファイルでそれを見ることができます、
しかしそれがそれを変更することは無意味です、
それはユニティがそれが起動されるたびにそれを元に戻すので。
それを超えて、正確にバージョン4.5はマイクロソフトのサイトから
ダウンロードすることができません、わずか4.5.2。

解決策
4.5.2 Developer Packをインストールします
(マシンにアップデートされたバージョンがあるため、ランタイムではインストールできません)。
https://dotnet.microsoft.com/download/thank-you/net452-developer-pack

その後、に進みます。
Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework
そして、v4.5.2フォルダの名前をに変更しますv4.5。


つまり.NET SDKs for Visual Studioから
.NET Framework 4.5.2 Developer Packをダウンロードして、
インストール先のフォルダ名を4.5.2から4.5にするとのこと。

試してみると…おっ、確かに直りました。

Visual Studio Codeを使っているといろいろ警告が出たりしますが
動いているなら無視した方が気が楽かもしれませんね。
ナムアミダブツ!

シリーズ記事
Unity + VSCode のブレークポイントが効かない 2020/04
Unity + VSCode のコード補間が効かない 2020/03
Unity 2018.3とVisual Studio Codeを組み合わせるとゴネる ← この記事だよ!