Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
4
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

.Net CoreプロジェクトでC#のバージョンを変更する方法

はじめに

.Net Coreプロジェクトでコンソールアプリを開発するときに、C#の言語バージョンを変更したいときがあります。

例えば、コンソールアプリでMainメソッドにasyncをつけたいときです。
しかし、MainメソッドにasyncをつけられるのはC#7.1からです。
現時点(2019年1月8日)におけるメジャーバージョンは7.0であり、プロジェクト作成時にはデフォルトでこのメジャーバージョンが選択されるため、Mainメソッドにはasyncをつけることができません。

Visual Studioを使っているのであれば、以下のようにプロジェクトのプロパティからビルドタブの一番下の詳細設定をクリックすると、言語バージョンを選択することができます。
image.png

しかしながら、.Net CoreはWindows以外の環境で開発することもあるため、この方法は使えません。

やりかた

.csprojファイルを編集します。
プロジェクトフォルダの中にプロジェクト名.csprojというファイルがあります。
これを開くと以下のようになっています。

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

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.1</TargetFramework>
  </PropertyGroup>

      <!--省略-->

</Project>

この中のPropertyGroup要素の中に以下の要素を追加します。今回は言語バージョンを7.1にするものとします。

    <LangVersion>7.1</LangVersion>

追加後の全体としては以下のようになります。

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

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <LangVersion>7.1</LangVersion>
  </PropertyGroup>

      <!--省略-->

</Project>

これでC#7.1の機能を使うことができます。

指定できる言語バージョンとそれぞれの説明については公式のこちらのページを参照してください。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
4
Help us understand the problem. What are the problem?