なんか毎回アップデートする度に悩んでる気がするので備忘録。
4.7.1 というバージョンは任意。
Windows だと Visual Studio とかでよしなに。
OSX の場合。
ここでは「最新の mono を入れろ」とか 「.NET Core を入れろ」と言われてますが、半分正解。ちょっと足りない。
omnisharp-vim でサーバを起動する際、 OmniSharpInstall
コマンドでダウンロードした omnisharp-roslyn を使うのだが、これそのまま使うと omnisharp-roslyn に同梱されている mono
コマンドを使うようになる。この mono
から .NET Framework 4.7.1 が見つからないのが問題なので、これをなんとかしてやる。
具体的には
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| #!/usr/bin/env bash
base_dir="$(cd "$(dirname "$0")" && pwd -P)" bin_dir=${base_dir}/bin etc_dir=${base_dir}/etc omnisharp_dir=${base_dir}/omnisharp
#mono_cmd=${bin_dir}/mono mono_cmd=/Library/Frameworks/Mono.framework/Versions/Current/bin/mono omnisharp_cmd=${omnisharp_dir}/OmniSharp.exe config_file=${etc_dir}/config
chmod 755 ${mono_cmd}
no_omnisharp=false
if [ "$1" = "--no-omnisharp" ]; then shift no_omnisharp=true fi
export MONO_CFG_DIR=${etc_dir} export MONO_ENV_OPTIONS="--assembly-loader=strict --config ${config_file}"
if [ "$no_omnisharp" = true ]; then "${mono_cmd}" "$@" else "${mono_cmd}" "${omnisharp_cmd}" "$@" fi
|
サーバ起動に使われるスクリプト ~/.cache/omnisharp-vim/omnisharp-roslyn/run
を書き換えて、同梱の mono
ではなく、別途インストールした mono
を使うように修正するだけ。
omnisharp-roslyn の方で、パスで優先されている mono
を使うようになってくれればいいんだが、まあ、このくらいで動くなら安いものか。