TL;DR
C# のバージョンを上げて Rider が赤くなった場合、 Mono のバージョンを確認する
症状
Unity 2017.1 で .NET 4.6 / C# 6.0 が使えるようになりました。
ということで設定したところ、 Rider がうまくソリューションを読んでいないような様子。
Cannot resolve symbol 'int'
と言われていたり、随所に赤波線が…
ちなみに Editor でのコンパイルは通っている。
原因と解決
Mono のバージョンを確認
Preferences > Build, Execution, Deployment > Toolset and Build
から Mono executable path を確認
$ ls -la /Library/Frameworks/Mono.framework/Versions/Current
lrwxr-xr-x 1 root admin 49 4 2 2016 /Library/Frameworks/Mono.framework/Versions/Current@ -> /Library/Frameworks/Mono.framework/Versions/4.2.3
4.2.3 でした。
Mono のアップデート
せっかくなので brew でインストールしなおす。
$ brew install mono
$ mono -V
Mono JIT compiler version 5.0.1.1 (2017-02/5077205 Wed May 31 14:47:04 BST 2017)
ちなみにアンインストール方法は
http://www.mono-project.com/docs/about-mono/supported-platforms/osx/#uninstalling-mono-on-mac-os-x
Mono を指定し直す
候補に出てこないときは、再起動したら出てくるような気がする。
直った
謎
Mono 4.0.0 で C# 6.0 自体はサポートされているのだが…?
http://www.mono-project.com/docs/about-mono/releases/4.0.0/
そのあたりはちゃんと追究していない。
とりあえず最新は正義。
感想
- C# 6 は神
- Mono のバージョンとか依存謎
他にためしたこと
- File > Invalidate Caches / Restart...