Visual Studioのバージョンと.NETのバージョンについて への返答
投稿で使用できる特殊コードの説明。(別タブで開きます。)
以下の返答は逆順(新しい順)に並んでいます。
投稿者 魔界の仮面弁士  (社会人)
投稿日時
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
Visual Studio 側から見たフレームワーク対応状況もまとめてみました。
.NET Compact Framework や .NET Micro Framework については省略しています。
間違いがあったらご指摘ください。
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
.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]
.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/27 13:11:56
ご回答ありがとうございます。
.NET 5以降の機能を使用している初級講座の学習をしたかったり、その他学習や開発を行いたい場合、Visual Studio 2017は使えず、サポートされている最新の.NETとVisual Studioを使用したほうがよいということですね。
ありがとうございました。
.NET 5以降の機能を使用している初級講座の学習をしたかったり、その他学習や開発を行いたい場合、Visual Studio 2017は使えず、サポートされている最新の.NETとVisual Studioを使用したほうがよいということですね。
ありがとうございました。
投稿者 魔界の仮面弁士  (社会人)
投稿日時
2023/9/27 12:02:30
どうしても古いバージョンの Visual Studio で開発したいという事であれば、
こちらを参照してみてください。ただし、開発環境側が正式対応していないため、
設定変更のための画面は用意されていませんし、新しく追加された言語機能なども使えません。
https://nishy-software.com/ja/dev-sw/visual-studio-2019-net-6/
こちらを参照してみてください。ただし、開発環境側が正式対応していないため、
設定変更のための画面は用意されていませんし、新しく追加された言語機能なども使えません。
https://nishy-software.com/ja/dev-sw/visual-studio-2019-net-6/
投稿者 魔界の仮面弁士  (社会人)
投稿日時
2023/9/27 11:58:47
.NET 5.0 のサポートは既に終了してます。(2022年5月10日)
今から採用することは得策ではありません。
https://dotnet.microsoft.com/ja-jp/download/visual-studio-sdks
そして、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 で開発する想定でいた方が良いでしょう。
今から採用することは得策ではありません。
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年間の予定
.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 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を使うしかないのでしょうか。
初級講座[改訂版]では、.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を使うしかないのでしょうか。
> 間違いがあったらご指摘ください。
下記の記事によると、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) をインストールしているから?