概要
Mac環境の.NET CoreプロジェクトでMain
メソッドにasync Task
を使おうとしたらC#の言語バージョンをC# 7.2
に上げなさいよって怒られたのでバージョン変更方法のメモです。
VisualStudio for MacからC#の言語バージョンを変更します。
目次
参考サイト様
環境
- Mac OS X Mojave 10.14.4
- Visual Studio Community 2019 for Mac Version: 8.0.1
- .NET Core SDK Version: 2.2.104
VS for MacからC#の言語バージョンを変更
該当プロジェクトを選択し下記画像(左)の様にプロパティを選択。
ビルド
グループの全般
を選択し、下記画像(右)の様に言語バージョンを指定します。
デフォルトであれば既定
となっています。
OK
を押下し設定が反映されると.csproj
ファイルにバージョン情報が追記されます。
今回はlatest
を指定しました。
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<LangVersion>latest</LangVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<LangVersion>latest</LangVersion>
</PropertyGroup>
番外:Console(Terminal)からC#の言語バージョンを変更(失敗)
下記の公式ドキュメントを参考に設定しようとしたんですが私の環境ではエラーが発生して実行できませんでした。
- C# 言語のバージョンの選択 #言語コンパイラ オプションを設定する - C# ガイド | Microsoft Docs 🔗
- csc.exe を使用したコマンド ラインからのビルド | Microsoft Docs 🔗
- -langversion (C# コンパイラ オプション) | Microsoft Docs 🔗
公式ドキュメントにはcsc(C Sharp Compiler)
を使ってコマンドからバージョンを変更できると記載があったので試してみました。
しかし、結果としてエラーが発生して言語バージョンを変更できていません。
VS for Mac側で変更できているので深追いしてないです。
変更可能な言語バージョンの確認
ターミナルからcsc
コマンドを使用してlangversion
に?
オプションを指定することで変更可能な言語バージョンが確認できます。
$ csc -langversion:?
Supported language versions:
default
1
2
3
4
5
6
7.0 (default)
7.1
7.2
7.3 (latest)
latest
言語バージョンの変更(失敗)
公式ドキュメントによればlangversion
に:
を挟む形で変更したい任意のバージョンを指定します。
今回はlatest
を指定しましたがエラーが発生して言語バージョンを変更できませんでした。
$ csc -langversion:"latest"
Microsoft (R) Visual C# Compiler version 2.8.2.62916 (2ad4aabc)
Copyright (C) Microsoft Corporation. All rights reserved.
warning CS2008: No source files specified.
error CS1562: Outputs without source must have the /out option specified
雑感
なぜかVS for Macのプロパティで変更する項目を見逃して5分ぐらい迷子になったのでメモに残しておきます。