かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

.NETCore CLI コマンドを実行するときの .NET Core SDK を明示的に指定する

何もしないと最新を使うので普段は何もしなくていい。 でも、今自分は .NET Core 3.0 Preview 1 を入れてるので出来れば使われたくないようなケースもある!

ということで、その場合にどうするかです。

使いたい SDK のバージョンを見る

今のマシンに入ってる SDK は以下のコマンドで見れるのでチェック

> dotnet --list-sdks
2.1.202 [C:\Program Files\dotnet\sdk]
2.1.500 [C:\Program Files\dotnet\sdk]
2.1.502 [C:\Program Files\dotnet\sdk]
2.1.600-preview-009426 [C:\Program Files\dotnet\sdk]
2.2.100 [C:\Program Files\dotnet\sdk]
2.2.200-preview-009648 [C:\Program Files\dotnet\sdk]
3.0.100-preview-009812 [C:\Program Files\dotnet\sdk]

なんかいっぱい入ってますね…

今回は 2.2.100 を使う用に指定したいと思います。

global.json を作る

global.json というファイルで指定します。スキーマとしてはシンプルで以下のような感じです。

{
  "sdk": {
    "version": "2.1.300"
  }
}

コマンドで生成できます。以下のコマンドを SDK のバージョンを指定したいプロジェクトのフォルダで実行します。

dotnet new globaljson --sdk-version 2.2.100

これで .NET Core 3.0 じゃなくて .NET Core 2.2.100 の SDK が使われるようになりました。 めでたしめでたし。