.NET Coreのバージョニング分かりにくい
一生懸命調べました。
分かりにくさよこんにちは
この記事を書いている時点で、.NET Coreの最新版としてRuntime 1.1.1がダウンロード可能です。
インストーラにも1.1.1と記されています。
で、インストール後にコマンドラインにて、"dotnet"と打ち込むと、
> dotnet Microsoft .NET Core Shared Framework Host Version : 1.1.0 Build : 928f77c4bc3f49d892459992fb6e1d5542cb5e86 Usage: dotnet [common-options] [[options] path-to-application] Common Options: --help Display .NET Core Shared Framework Host help. --version Display .NET Core Shared Framework Host version. Options: --fx-version <version> Version of the installed Shared Framework to use to run the application. --additionalprobingpath <path> Path containing probing policy and assemblies to probe for. Path to Application: The path to a .NET Core managed application, dll or exe file to execute. If you are debugging the Shared Framework Host, set 'COREHOST_TRACE' to '1' in your environment. Use dotnet --help to get help with the SDK > dotnet --version Microsoft .NET Core Shared Framework Host Version : 1.1.0 Build : 928f77c4bc3f49d892459992fb6e1d5542cb5e86 Usage: dotnet [common-options] [[options] path-to-application] ... >
Version:1.1.0 と表示されます。これは、".NET Core Shared Framework Host"のバージョン情報であり、Runtimeのバージョン情報ではありません。ここが混乱するポイントの一つでしょう。
ではインストールされているRuntimeのバージョンはどのように確認できるのかというと、
“C:\Program Files\dotnet\shared\Microsoft.NETCore.App”*1
以下にあるフォルダの名前がそれぞれ、Runtimeのバージョンになっているようです。
*2
SDKをインストールするともっと分かりにくくなる
それだけであれば良いのですが、SDKをインストールするともっと混乱することになります。
現時点でダウンロードできるSDKはバージョン1.0.1なのですが、SDKのインストーラのファイル名は"dotnet-1.1.1-sdk-…“とRuntimeのバージョンが記されており、SDKのバージョンは記されておりません。
そして、インストール後にコマンドラインから"dotnet"と打つと、
> dotnet Microsoft .NET Core Shared Framework Host Version : 1.1.0 Build : 928f77c4bc3f49d892459992fb6e1d5542cb5e86 Usage: dotnet [common-options] [[options] path-to-application] Common Options: --help Display .NET Core Shared Framework Host help. --version Display .NET Core Shared Framework Host version. Options: --fx-version <version> Version of the installed Shared Framework to use to run the application. --additionalprobingpath <path> Path containing probing policy and assemblies to probe for. Path to Application: The path to a .NET Core managed application, dll or exe file to execute. If you are debugging the Shared Framework Host, set 'COREHOST_TRACE' to '1' in your environment. To get started on developing applications for .NET Core, install the SDK from: http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409 >
と、やはり .NET Core Shared Framework Hostのバージョンが表示されます。
そして混乱するのはここからで、さらに"dotnet –version"と打つと、
> dotnet --version 1.0.1 >
と、SDKインストール前と異なる情報が表示されます。
“–version Display .NET Core Shared Framework Host version."とは何だったのか。
また、この"1.0.1"はSDKのバージョン情報ではなくて、"CLI(CommandLine Interface) Tool"のバージョン情報らしいです。
ここもまた大きく混乱する箇所だと思います。
じゃあ、インストールされているSDKのバージョン情報はどこを見るのか、というと、
“C:\Program Files\dotnet\sdk”*3
以下にあるフォルダのフォルダ名を確認することになるようです。
この辺りも混乱する原因になっていると思われます。
混乱しているのは私たちだけじゃない
まとめると、
Runtimeのバージョン ≠ Shared Framework Hostのバージョン ≠ SDKのバージョン ≠(≒?) CLI Toolのバージョン
と言ったところでしょうか。
それぞれ微妙に似ているバージョンなのも混乱の元でしょうね。
で、これらが分かりにくいと思っている人は他にもいるようで、Github上にIssueも上がっています。
去年の半ばには報告されていた割りに全然改善されていなかったのですが、最近また取り上げられているようです。
次こそ分かりやすくなると良いのですが。