はじめに
.NET SDK がサポート切れバージョン(3.1)の為、8.0へのバージョンアップを行った際の備忘録
-
.NET SDKのバージョンアップ
- インストール前のバージョン確認
- 8.0 ダウンロード
- インストール
- インストール後のバージョン確認
-
自作 QRコード生成 PGMのリビルド
- プロジェクトファイルの更新 ※プログラムの変更はなし
- リビルド
- 実行ファイルの作成
対象読者
- .NET SDKをバージョンアップしたい
- 初学者
使用環境、サービス
- Windows 11 (24H2)
- .NET 8.0 SDK
- 管理者権限
- .NET SDK 3.1環境で作成されたプログラム資源
※前回作成したものを流用1
手順
-
.NET SDK のバージョン確認
以下コマンドを実行
dotnet --list-sdks
- 3.1 の為、サポート切れ2
C:\temp>dotnet --list-sdks
3.1.426 [C:\Program Files\dotnet\sdk]
-
.NET SDKのダウンロード
以下よりダウンロードする
-
.NET8と.NET9の比較
Gpt5 Thinking にて比較表作成
→どちらを使っても問題なさそうなので .NET8 を使用
| 項目 | .NET 8 | .NET 9 |
|---|---|---|
| リリース種別 | LTS(長期サポート) (Microsoft) | STS(短期サポート) (Microsoft) |
| リリース日 | 2023-11-14 (Microsoft) | 2024-11-12 (Microsoft) |
| サポート終了(EoS) | 2026-11-10 (Microsoft) | 2026-11-10(STSはこの版から延長された結果) (Microsoft) |
| Visual Studio の最小要件 |
VS 2022 17.8 以降で net8.0 をターゲット可 (Microsoft Learn) |
VS 2022 17.12 以降で net9.0 をターゲット可 (Microsoft Learn) |
| 代表的な改善の例 | ランタイム/ASP.NET/MAUI 等の広範な性能向上(PGO 既定化など) (Microsoft for Developers) | 例外処理・JIT/PGO/LINQ・GC・AOT 最適化などの追加強化 (Microsoft for Developers) |
| 自作PGM(QR コード生成)への影響 | 体感差は小:どちらでも安定動作 | 体感差は小:どちらでも安定動作 |
-
.NET8のインストール
https://dotnet.microsoft.com/ja-jp/download より「.NET8.0」をダウンロード

-
.NET SDK のバージョン確認
再度、以下コマンドを実行
dotnet --list-sdks
- 8.0 が追加されていることを確認(3.1と共存)2
C:\Users\seta>dotnet --list-sdks
3.1.426 [C:\Program Files\dotnet\sdk]
8.0.414 [C:\Program Files\dotnet\sdk]
.NET SDK のバージョンアップのみであれば、ここで終了
自作プログラムの変更
- QR コード生成プログラムを .NET 8 SDK でリビルド
-
プロジェクトファイルの書き換え
プロジェクトファイル(QRDemoVB.vbproj)を以下のように書き換え、.NET8対応にするC:\temp\QrDemoVB\QrDemoVB.vbproj<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net8.0</TargetFramework> <RootNamespace>QrDemoVB</RootNamespace> <LangVersion>latest</LangVersion> </PropertyGroup> </Project> -
3.1 で作成した資源を全て削除、QRCoderの参照設定を再度行い、リビルド
cd C:\temp\QrDemoVB rmdir /s /q .\obj rmdir /s /q .\bin rmdir /s /q .\pub-onefile dotnet add package QRCoder dotnet build -f net8.0 --no-restore dotnet publish -c Release -r win-x64 --self-contained true ^ -p:PublishSingleFile=true ^ -p:EnableCompressionInSingleFile=true ^ -p:IncludeNativeLibrariesForSelfExtract=true ^ -p:DebugType=None -p:DebugSymbols=false ^ -o C:\temp\QrDemoVB\pub-onefile実行結果
C:\>cd C:\temp\QRDemoVB C:\temp\QrDemoVB>rmdir /s /q .\obj C:\temp\QrDemoVB>rmdir /s /q .\bin C:\temp\QrDemoVB>rmdir /s /q .\pub-onefile C:\temp\QrDemoVB>dotnet add package QRCoder 復元対象のプロジェクトを決定しています... Writing C:\Users\xxxx\AppData\Local\Temp\tmpnevukm.tmp info : X.509 証明書チェーンの検証では、コード署名のために .NET によって選択された既定の信頼ストアが使用されます。 info : X.509 証明書チェーンの検証では、タイムスタンプに .NET によって選択された既定の信頼ストアが使用されます。 info : パッケージ 'QRCoder' の PackageReference をプロジェクト 'C:\temp\QrDemoVB\QrDemoVB.vbproj' に追加しています。 info : GET https://api.nuget.org/v3/registration5-gz-semver2/qrcoder/index.json info : OK https://api.nuget.org/v3/registration5-gz-semver2/qrcoder/index.json 382 ミリ秒 info : C:\temp\QrDemoVB\QrDemoVB.vbproj のパッケージを復元しています... info : GET https://api.nuget.org/v3/vulnerabilities/index.json info : OK https://api.nuget.org/v3/vulnerabilities/index.json 213 ミリ秒 info : GET https://api.nuget.org/v3-vulnerabilities/2025.09.20.05.25.56/vulnerability.base.json info : GET https://api.nuget.org/v3-vulnerabilities/2025.09.20.05.25.56/2025.10.01.05.26.47/vulnerability.update.json info : OK https://api.nuget.org/v3-vulnerabilities/2025.09.20.05.25.56/vulnerability.base.json 275 ミリ秒 info : OK https://api.nuget.org/v3-vulnerabilities/2025.09.20.05.25.56/2025.10.01.05.26.47/vulnerability.update.json 455 ミリ秒 info : パッケージ 'QRCoder' は、プロジェクト 'C:\temp\QrDemoVB\QrDemoVB.vbproj' のすべての指定されたフレームワークとの互換性があります。 info : ファイル 'C:\temp\QrDemoVB\QrDemoVB.vbproj' に追加されたパッケージ 'QRCoder' バージョン '1.6.0' の PackageReference。 info : アセット ファイルをディスクに書き込んでいます。パス: C:\temp\QrDemoVB\obj\project.assets.json log : C:\temp\QrDemoVB\QrDemoVB.vbproj を復元しました (905 ミリ秒)。 C:\temp\QrDemoVB>dotnet restore 復元対象のプロジェクトを決定しています... 復元対象のすべてのプロジェクトは最新です。 C:\temp\QrDemoVB>dotnet build -f net8.0 復元対象のプロジェクトを決定しています... 復元対象のすべてのプロジェクトは最新です。 QrDemoVB -> C:\temp\QrDemoVB\bin\Debug\net8.0\QrDemoVB.dll ビルドに成功しました。 0 個の警告 0 エラー 経過時間 00:00:05.32 C:\temp\QrDemoVB> -
テスト出力、表示
以下のコマンドにて QR コードの出力と出力結果を確認cd C:\temp\QrDemoVB dotnet run -- "テスト出力" PNG "C:\temp\QR_test.png" H mspaint C:\temp\QR_test.png -
実行ファイルの作成
以下のコマンドにて 実行ファイルを作成cd C:\temp\QrDemoVB dotnet publish -c Release -r win-x64 --self-contained true ^ -p:PublishSingleFile=true ^ -p:EnableCompressionInSingleFile=true ^ -p:IncludeNativeLibrariesForSelfExtract=true ^ -p:DebugType=None -p:DebugSymbols=false ^ -o C:\temp\QrDemoVB\pub-onefile dir C:\temp\QrDemoVB\pub-onefile実行結果
C:\temp\QrDemoVB>cd C:\temp\QrDemoVB C:\temp\QrDemoVB>dotnet publish -c Release -r win-x64 --self-contained true ^ More? -p:PublishSingleFile=true ^ More? -p:EnableCompressionInSingleFile=true ^ More? -p:IncludeNativeLibrariesForSelfExtract=true ^ More? -p:DebugType=None -p:DebugSymbols=false ^ More? -o C:\temp\QrDemoVB\pub-onefile 復元対象のプロジェクトを決定しています... 復元対象のすべてのプロジェクトは最新です。 QrDemoVB -> C:\temp\QrDemoVB\bin\Release\net8.0\win-x64\QrDemoVB.dll QrDemoVB -> C:\temp\QrDemoVB\pub-onefile\ C:\temp\QrDemoVB>dir C:\temp\QrDemoVB\pub-onefile ドライブ C のボリューム ラベルは OS です ボリューム シリアル番号は XXXX-XXXX です C:\temp\QrDemoVB\pub-onefile のディレクトリ 2025/MM/DD HH:MM <DIR> . 2025/MM/DD HH:MM <DIR> .. 2025/MM/DD HH:MM 35,198,896 QrDemoVB.exe 1 個のファイル 35,198,896 バイト 2 個のディレクトリ 40,586,113,024 バイトの空き領域 C:\temp\QrDemoVB> -
以下のコマンドにて QR コードの出力と出力結果を確認
C:\temp\QRDemoVB\pub-onefile\QRDemoVB.exe "バージョンアップ後の出力" PNG "C:\temp\QR.png" H mspaint C:\temp\QR.png
結果
- 今回は特にプログラム変更なくリビルドができた
画像生成は QRCoder ライブラリ任せで System.Drwing.Common 等使わなかったため(たまたま)




