Visual Studioのバージョンと.NETのバージョンについて

タグの編集
投稿者 ツェナー  (社会人) 投稿日時 2023/9/27 11:12:07
Visual Studio 2017をインストールし、Visual Basic中学校の初級講座[改訂版]を参考にさせていただきながら、VBの学習を行っています。
初級講座[改訂版]では、.NET 5以降を使用する指定があるページがいくつかあると思います。

https://dotnet.microsoft.com/ja-jp/download/visual-studio-sdks
上記のサイトによれば、Visual Studio 2017は、.NET Core2.2までしか対応しておらず、.NET 5.0に対応するのはVisual Studio 2019以降であるとのことです。
拡張機能の.NET アップグレード アシスタントのインストールを試みましたが、「この拡張機能は、現在インストール済みの製品にはインストールできません。」と表示されました。
.NET5.0以降を使用したければVisual Studio 2019か2022を使うしかないのでしょうか。
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2023/9/27 11:58:47
.NET 5.0 のサポートは既に終了してます。(2022年5月10日)
今から採用することは得策ではありません。
https://dotnet.microsoft.com/ja-jp/download/visual-studio-sdks
.NET Core 1.0 (2016/06/27~2019/06/27)Out of support    3年間
.NET Core 1.1 (2016/11/16~2019/06/27)Out of support    2年半
.NET Core 2.0 (2017/08/14~2018/10/01)Out of support    1年強
.NET Core 2.1 (2018/05/30~2021/08/21)Out of support    3年強
.NET Core 2.2 (2018/12/04~2019/12/23)Out of support    1年強
.NET Core 3.0 (2019/09/23~2020/03/03)Out of support    半年弱
.NET Core 3.1 (2019/12/03~2022/12/13)Out of support    半年間
.NET 5        (2020/11/10~2022/05/10)Out of support    1年半
.NET 6        (2021/11/08~2024/11/12)Active            3年間
.NET 7        (2022/11/08~2024/05/14)Active            1年半
.NET 8        (2023/11/14に提供見込み)Release Candidate 3年間の予定



そして、Visual Studio のバージョンとターゲットフレームワークの対応には密接な関係があります。

たとえば、.NET 8 の開発をするなら、現時点では VS2022 Preview が選択肢になります。
そして VS2022 の場合、.NET 6 か .NET 7 がサポートされています。
VS2022 で .NET 2.1 や 3.1 や 5 といった、サポート切れのフレームワークを
ビルドすることもできますけれどね。

VS2019 では、.NET Core 2.0~.NET 5 をサポートしますが、.NET 6 以降はサポートされません。
すなわち、すべてのバージョンが既にサポート対象外となっています。
.NET Framework 系であれば、サポート期間中のバージョンがありますけれどね。

.NET Framework とは異なり、.NET はそのサイクルが短いので、
常に最新版の Visual Studio で開発する想定でいた方が良いでしょう。
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2023/9/27 12:02:30
どうしても古いバージョンの Visual Studio で開発したいという事であれば、
こちらを参照してみてください。ただし、開発環境側が正式対応していないため、
設定変更のための画面は用意されていませんし、新しく追加された言語機能なども使えません。
https://nishy-software.com/ja/dev-sw/visual-studio-2019-net-6/
投稿者 ツェナー  (社会人) 投稿日時 2023/9/27 13:11:56
ご回答ありがとうございます。
.NET 5以降の機能を使用している初級講座の学習をしたかったり、その他学習や開発を行いたい場合、Visual Studio 2017は使えず、サポートされている最新の.NETとVisual Studioを使用したほうがよいということですね。

ありがとうございました。
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2023/9/27 16:13:57
VS2015 はコンパイラが "Roslyn" ベースになった最初のバージョンですが、
VS2017 だと、.NET Core 2.2 までの対応だったと思います。

ひとまず、各 .NET バージョンにおける VS の対応開始バージョンを載せておきます。
実際は .NET SDK にもマイナーバージョンがありますので、Preview 版の .NET SDK だと
これより前の Visual Studio で動くものもあったりしますし、その逆に
.NET SDK の最新バージョンで、より高い VS バージョンが要求されることもあります。

https://dotnet.microsoft.com/ja-jp/download/dotnet
 .NET 7        → Visual Studio 2022 17.4
 .NET 6        → Visual Studio 2022 17.0
 .NET 5        → Visual Studio 2019 16.8
 .NET Core 3.1 → Visual Studio 2019 16.4
 .NET Core 3.0 → Visual Studio 2019 16.3
 .NET Core 2.2 → Visual Studio 2017 15.9
 .NET Core 2.1 → Visual Studio 2017 15.8.6
 .NET Core 2.0 → Visual Studio 2017 15.5
 .NET Core 1.1 → Visual Studio 2015 14.3 / 2017 15.2
 .NET Core 1.0 → Visual Studio 2015 14.3 / 2017 15.2


Visual Studio 側から見たフレームワーク対応状況もまとめてみました。
.NET Compact Framework や .NET Micro Framework については省略しています。
間違いがあったらご指摘ください。
VS2022(17.x)[2021/11/08~2032/01/13]
 .NET Framework: 2.0 / 3.0 / 3.5 / 4 / 4.5.1 / 4.5.2 / 4.6 / 4.6.1 / 4.6.2 / 4.7 / 4.7.1 / 4.7.2 / 4.8 / 4.8.1
 .NET: Core 2.1 / 2.2 / 3.0 / 3.1 / 5 / 6 / 7
VS2019(16.x)[2019/04/02~2029/04/10]
 .NET Framework: 2.0 / 3.0 / 3.5 / 4 / 4.5.1 / 4.5.2 / 4.6 / 4.6.1 / 4.6.2 / 4.7 / 4.7.1 / 4.7.2 / 4.8
 .NET: Core 1.0 / 1.1 / 2.0 / 3.0 / 3.1 / 5
VS2017(15.x)[2017/03/07~2027/04/13]
 .NET Framework: 2.0 / 3.0 / 3.5 / 4 / 4.5.1 / 4.5.2 / 4.6 / 4.6.1 / 4.6.2 / 4.7 / 4.7.1 / 4.7.2 / 4.8
 .NET: Core 1.0 / 1.1 / 2.0 / 2.1 / 2.2
VS2015(14.x)[2015/07/20~2025/10/14]
 .NET Framework: 2.0 / 3.0 / 3.5 / 4 / 4.5.1 / 4.5.2 / 4.6 / 4.6.1 / 4.6.2 / 4.7 / 4.7.1 / 4.7.2
VS2013(12.0)[2014/01/15~2024/04/09]
 .NET Framework: 2.0 / 3.0 / 3.5 / 4 / 4.5.1 / 4.5.2 / 4.6 / 4.6.1 / 4.6.2
VS2012(11.0)[2012/10/31~2023/01/10]
 .NET Framework: 2.0 / 3.0 / 3.5 / 4 / 4.5.1 / 4.5.2 / 4.6 / 4.6.1 / 4.6.2
VS2010(10.0)[2010/06/29~2020/07/14]
 .NET Framework: 2.0 / 3.0 / 3.5 / 4
VS2008 (9.0)[2008/02/19~2018/04/10]
 .NET Framework: 2.0 / 3.0 / 3.5
VS2005 (8.0)[2006/01/27~2016/04/12]
 .NET Framework: 2.0
VS2003 (7.1)[2003/07/10~2013/10/08]
 .NET Framework: 1.1
VS2002 (7.0)[2002/04/15~2009/07/14]
 .NET Framework: 1.0
VS 6.0 (6.0)[1998/09/02~2008/04/08]
投稿者 魔界の仮面弁士  (社会人) 投稿日時 2023/9/28 17:35:42
> Visual Studio 側から見たフレームワーク対応状況もまとめてみました。
> 間違いがあったらご指摘ください。

下記の記事によると、VS2022 では .NET Framework 4.0/4.5/4.5.1 をビルドできないと書かれていますね。
https://learn.microsoft.com/ja-jp/dotnet/framework/configure-apps/how-to-enable-and-disable-automatic-binding-redirection

でも何故か当方環境の VS2022 だと選択できるし、コンパイルもできる…。
もしかして、複数のバージョン (VS2008/2010/2017/2019/2022) をインストールしているから?