狐の嫁入りっていいよね

理系と芸術系になりそなった文系卒、コンピュータグラフィックスを学ぶ

Windows10とUnity2018で.NET4.6にしたらRiderが真っ赤になった

f:id:lipton_lemontea:20181026222658j:plain

実行環境

Windows10
Jetbrains Rider 2018.2
Unity 2018.2.12f1
.NET Framework 4.6

Unityで使うC#(というか.NET)のバージョンを上げたらプログラミングエディタに怒られた話。

Riderはいいぞ

UnityでC#のプログラミングをするとき、プログラミングエディタとして私の周りほぼ全員がMicrosoftVisual Studioを使っている。 私だけJetbrainsのRiderを使っている。Anki然り、素晴らしいものはとことん使い倒したい派なので割と声高々に布教するのだが、身近で使っている人が私だけというのは悲しい。

以下の書籍を読んで、エラーの原因を探す方法(=デバッギング)を覚えたあたりから開発効率が上がっている。

二冊ともJetbrains製品のJava専用プログラミングエディタである「IntelliJ IDEA」ベースで書かれているが、Jetbrains製品の操作方法はRider含めどれもほぼほぼ変わらないので参考になる。

こっちは少し古いし洋書だけど、上の本を覚えていれば「ほんほん、なるほどー」ってなる。エディタの知識に肉付けをしていく感覚で見れる。

IntelliJ IDEA Essentials (English Edition)

IntelliJ IDEA Essentials (English Edition)

まあ、それはいいんだけど、C#6系の$"hoge {fuga} {mogu}"式だったり、いろんな文法が使いたかったので、調べたらUnityが.NETフレームワーク4.x系に対応できるとのことだった。

①Unityでまず.NET 4.xを使えるようにする ②Riderで怒られる ③その解決方法

の順で書いていく。

①Unityでまず.NET 4.xを使えるようにする

Unityで.NET 4.xを設定する手順

Edit > Project Setting > Playerをクリック

f:id:lipton_lemontea:20181026225125p:plain

そうするとPlayer SettingというメニューがInspectorに現れる。

f:id:lipton_lemontea:20181026225248p:plain

その中の、Other Setting > Configurationとたどっていくと、

Scripting Runtime Versionという項目があるので、.NET 4.x Equivalentを選ぶ。 f:id:lipton_lemontea:20181026225429p:plain

Unityの再起動を促されるので、再起動する。

②Riderに怒られる

次にRiderを開いたら真っ赤になって、怒ってきた。

f:id:lipton_lemontea:20181026225811p:plain

真っ赤っか。

Event Logにはこんな感じで吐いていた。

2018/10/26

22:36   Project 'Assembly-CSharp' load finished with warnings: フレームワーク ".NETFramework,Version=v4.7.1" の参照アセンブリが見つかりませんでした。これを解決するには、このフレームワーク バージョンの SDK または Targeting Pack をインストールするか、SDK または Targeting Pack をインストールしているフレームワークのバージョンにアプリケーションを再ターゲットしてください。アセンブリはグローバル アセンブリ キャッシュ (GAC) から解決され、参照アセンブリの代わりに使用されるため、アセンブリが目的のフレームワークに正しくターゲットされない場合もあります。 at (1179:5)

22:36   Project 'Assembly-CSharp-firstpass' load finished with warnings: フレームワーク ".NETFramework,Version=v4.7.1" の参照アセンブリが見つかりませんでした。これを解決するには、このフレームワーク バージョンの SDK または Targeting Pack をインストールするか、SDK または Targeting Pack をインストールしているフレームワークのバージョンにアプリケーションを再ターゲットしてください。アセンブリはグローバル アセンブリ キャッシュ (GAC) から解決され、参照アセンブリの代わりに使用されるため、アセンブリが目的のフレームワークに正しくターゲットされない場合もあります。 at (1179:5)

22:36   Project 'Assembly-CSharp-Editor-firstpass' load finished with warnings: フレームワーク ".NETFramework,Version=v4.7.1" の参照アセンブリが見つかりませんでした。これを解決するには、このフレームワーク バージョンの SDK または Targeting Pack をインストールするか、SDK または Targeting Pack をインストールしているフレームワークのバージョンにアプリケーションを再ターゲットしてください。アセンブリはグローバル アセンブリ キャッシュ (GAC) から解決され、参照アセンブリの代わりに使用されるため、アセンブリが目的のフレームワークに正しくターゲットされない場合もあります。 at (1179:5)

22:36   .NET Framework Not Installed: Download and install .NET Framework 4.7.1 Developer Pack

③その解決方法

調べたら同じようなことで怒られている人もいたんだけど、私のOSはWinで下記の人のOSはMacなので、解決方法が違った(ので記事にした)。

qiita.com

結論としては、Unity側での設定でRiderの怒りは静まった。

UnityのEdit > Preferenceをクリック

その後PreferenceウィンドウのRiderをクリック

Override TargetFrameWorkVersionにチェックを入れる。

その後、RiderとUnityを再起動したら怒られなくなった。

f:id:lipton_lemontea:20181026230316j:plain

f:id:lipton_lemontea:20181026230325j:plain

めでたし。