窓を作っては壊していた人のブログ

この謎のブログタイトルの由来を知るものはもういないだろう

Visual Studio for Mac 7.4 でC# 7.2 を使ってみたい!

タイトル通りでネタです.

先日リリースされた Visual Studio for Mac 7.4.0.1033C# 7.1に正式に対応しました:clap: 非常に喜ばしいことではありますが,新しいものをどんどん触ってみたいおじさんの私としては,あれっ,C# 7.2は?という感じになっています.

なんとかVisual Studio for MacC# 7.2の機能が使えないか調べてみたので,その結果をまとめてみます.

注意

先に答えを言うとMonoのバージョンを上げるだけなのですが,Visual Studio for Mac 7.4での安定性が保証されていないバージョンを導入することになります. 試してみる程度の用途に留めるのが良いかと思われます.

環境

実験方法

[C#] Add language version 7.2 to supported languages UI by Therzok · Pull Request #3911 · mono/monodevelop · GitHub

このコミットでC# 7.2の言語バージョンを用いてビルドするUIのリストが追加されましたが,現在のStableにはまだ入っていないので,自分でcsprojを書き換えることでプロジェクトをC# 7.2でビルドするように指定します.

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
    <LangVersion>7.2</LangVersion>
  </PropertyGroup>

</Project>

こんな感じですね. 一度ビルドを試してみましょう.

失敗しましたね. 理由としてはビルドにはcsc(Roslyn compiler)を使っているのですが,VS4MのStableと同時に配信されたMonoではそのRoslyn Compilerのバージョンが2.3.2になっているからです.

これを最新の2.6.0にすることが出来ればC# 7.2でもビルドが出来るのですが,さてどうやって変えればいいのだろうかと考えてみます. Monoのコミットログを探ってみると Bump Roslyn · mono/mono@c763b4a · GitHub のコミットでRoslynのバージョンが2.6.0に変更されていることが確認できます.

それではこのバージョンに変わったのはいつかというと,Mono 5.10に入ってからということもわかります. あっさり答えが見つかりましたので,Mono 5.10を導入してみましょう.

Download - Stable | Mono このあたりのリンクから5.10のインストーラーを探してインストールします.

その後VS4Mを一度再起動し先ほどのプロジェクトをビルドしてみるとビルドが通ると思います(エディタ上ではエラーの赤波があるのにビルドが通る楽しい状況になります).

これでVisual Studio for MacでもC# 7.2が使えるようになりました.

おきもち

正直な所今すぐに対応させる必要がないかぎりは公式に対応するまで待つのが吉かと思いました.