0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

.NET 8.0 SDK へのバージョンアップとリビルド

Posted at

はじめに

.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 等使わなかったため(たまたま)
  1. https://qiita.com/EitaroSeta/items/f9320740ebcc4a632890

  2. https://dotnet.microsoft.com/ja-jp/platform/support/policy/dotnet-core 2

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?