LoginSignup
7
2

More than 3 years have passed since last update.

Unity 2019.3.4f1などのAssembly-CSharp.csprojでPackageのアセンブリ参照が行われていない場合

Last updated at Posted at 2020-03-09

2020/03/25追記
・Open C# Projectを行うときにインターネットに接続する必要がある可能性があります。

こんにちは、Densyakunです。

Unityをアップデートしてゲームを開発していたら、
VSCode(OmniSharp)にて、
一部の参照(すべてUIやEventSystemsなどのPackage)に、
OmniSharp.MSBuild.ProjectLoader does not exist
というエラーが出ており、
参照が見つからないようでした。

しかしUnityEngineなどは正常に参照できています。

パスを見るとUnityプロジェクトフォルダ内を参照しようとしており、
Assembly-CSharp.csprojを確認すると、
パスが書かれていませんでしたが、
Unityがcsprojを管理しているため書き換えても直りません。

以前他の問題で参照のエラーが起きていたときの解決策として、
.csprojを削除してから、
Assets>Open C# ProjectまたはProjectタブを右クリック>Open C# Projectで、
.csprojを再生成してみたのですが、直りませんでした。

解決

どのバージョンからなのか、いつからかは知りませんが、
私がアップデートしたUnity 2019.3.4f1では、
Package毎に.csprojファイルが分割されているため、
Assembly-CSharp.csprojには、Packageを除いた基本的なものしか参照がありませんでした。

Edit>Preferences...でUnity本体の設定(バージョンごとに設定が分かれています)を開き、
External ToolsのGenerate all .csproj files.にチェックを入れることで、
すべての.csprojファイルを生成するようにします。

それから.csprojを削除して
Assets>Open C# ProjectまたはProjectタブを右クリック>Open C# Projectで、
.csprojを再生成すると直ります。

バージョンごとにUnityの設定が分かれていること、
新しい設定がオフになっていることにより、
デフォルトでAssembly-CSharp.csprojしか生成しないようになっているため、
このようなことになっていました。

解決はしたのですが、
以前よりOmniSharp(C#拡張機能)の起動時間が、
遅くなりました。

検索しても解決方法が載っておらず、
自分で調べることで解決することができましたので、
記事にしました。
以上です。

7
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
2