VisualStudio2019 インストール後に .NET Standard 2.0 の既存プロジェクトでエラーが発生 → global.json で回避


VisualStudio2017 で開発を行っていた環境に先日正式リリースされた VisualStudio2019 をインストールしたところ、VisualStudio2017 の既存プロジェクトでエラーが発生するようになりました。

### 発生したエラー

> The current .NET SDK does not support targeting .NET Standard 2.0.  Either target .NET Standard 1.6 or lower, or use a version of the .NET SDK that supports .NET Standard 2.0.

現在の SDK では .NET Standard 2.0 がサポートされないということです。VisualStudio2019 をインストールする前は開発できていましたので、VisualStudio2019 のインストールによって SDK のバージョンが変わったことが原因ではないかと思われます。

### バージョンを確認

コマンドプロンプトで `dotnet --info` を実行し、バージョンを確認します。残念ながら VisualStudio2019 をインストールする前の状態を残していないため比較ができないのですが、.NET Core SDKs には 2.0.x はありません。

```
Microsoft Windows [Version 10.0.17134.648]
(c) 2018 Microsoft Corporation. All rights reserved.

C:\dotnet --info
.NET Core SDK (global.json を反映):
 Version:   2.1.602
 Commit:    04475eb7cf

ランタイム環境:
 OS Name:     Windows
 OS Version:  10.0.17134
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\2.1.602\

Host (useful for support):
  Version: 2.1.9
  Commit:  dcedc87d22

.NET Core SDKs installed:
  1.0.0-preview2-003121 [C:\Program Files\dotnet\sdk]
  1.0.0 [C:\Program Files\dotnet\sdk]
  2.1.2 [C:\Program Files\dotnet\sdk]
  2.1.202 [C:\Program Files\dotnet\sdk]
  2.1.401 [C:\Program Files\dotnet\sdk]
  2.1.403 [C:\Program Files\dotnet\sdk]
  2.1.602 [C:\Program Files\dotnet\sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.1.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.1.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.1.9 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.1.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.1.9 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 1.0.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 1.0.4 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 1.1.1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.0.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.0.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.1.9 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download
```

### global.json を配置してみる

ソリューションのルートディレクトリに次の内容の global.json を配置しました。

```global.json
{
  "sdk": {
    "version": "2.1.6"
  }
}
```

### 結果

上記のエラーは発生しなくなりました。


### 参考リンク

[【stackoverflow】The current .NET SDK does not support targeting .NET Standard 2.0 error in Visual Studio 2017 update 15.3](https://stackoverflow.com/questions/45732236/the-current-net-sdk-does-not-support-targeting-net-standard-2-0-error-in-visua)
[Solved: The current .NET SDK does not support targeting .NET Standard 2.0.](https://rubenmamo.com/solved-the-current-net-sdk-does-not-support-targeting-net-standard-2-0/)