意味悲鳴

PythonとかUnityとか.技術ブログでしたが,研究ブログにシフトしました.

El Capitan上でUnityのC#スクリプトをVSCodeでいじろうとしたら補間が効かなかったとき

時間がないしログをちゃんと保存しておかなかったので,記事としての有用性は低い感じがしますが,一応日本語の情報が見当たらなかったので,書くだけ書いておきます.OSXのバージョンは10.11,El Capitanです.

qiita.com

前提としてはこれをやろうとしているんだけど,なんかC#の補間が効かない.これが効かない原因は恐らく2つの段階があって,一つ目がVSCodeに「C#」という拡張機能を入れることに失敗していて,二つ目がその拡張機能自体がインストールできた後に,拡張機能で使っているOmniSharpがうまく動かない,と言う感じ. とりあえず一つ一つ片付けていきましょう.

拡張機能C#をインストールしてC#スクリプトを開こうとすると,初回に必要なファイルをダウンロードし始めます.コンソールにずらずら色々出て来るのでそれを眺めていてそこで失敗する場合があると思います(これのログを取っておかなかったのでココに載せられなくてごめんなさい…….たしかMSのC# Core DebuggerのDL中にコケた記憶が).

これはDLに使うOpenSSLがインストールされていないのが原因だそうで,こいつをつかえるようにすればOK .この時,brew側でOpenSSLのリンクを作成する必要があるらしいんですが,これデフォルトではセキュリティ的にマズいからわざと作っていないんだそうで.なので,自己責任でお願いします.

brew install openssl
brew link --force openssl

このあと,VSCodeで一度拡張機能をアンインストールして,その後再インストールすると私の環境では動作するようになりました.

次,拡張機能C#が入った後,それがうまく動かない場合.C#スクリプトを開くとずらずらコンソールにログが出てくると思います.その中に以下のような文言があったら恐らく私と同じような状況.

Couldn't locate Mono, TargetFrameworkRootPath not specified

これが出る場合,単純にMonoがMacにインストールされていないので,以下のようにコマンドを打てばOK.

brew install mono 

このあと,VSCodeを立ち上げ直すとうまく動くようになりました.やったー\(^o^)/

以下,参考リンク.

github.com

github.com

github.com