potisanのプログラミングメモ

プログラミング素人です。昔の自分を育ててくれたネット情報に少しでも貢献できるよう、情報を貯めていこうと思っています。Windows環境のC++やC#がメインです。

C# 実行ファイルやDLL(PE形式のファイル)からバージョン情報を取得する

実行ファイルやDLL(PE形式のファイル)のバージョン情報は.NET Frameworkや.NET Coreの標準機能で取得することができます。具体的にはSystem.Diagnostics名前空間FileVersionInfoクラスを使用します。

.NET Coreのみ(トップレベステートメントC# 9以降)

using System;
using System.Diagnostics;

var verInfo = FileVersionInfo.GetVersionInfo(@"C:\Windows\Notepad.exe");
Console.WriteLine("Notepad.exe");
Console.WriteLine($"会社名:{verInfo.CompanyName}");
Console.WriteLine($"製品バージョン:{verInfo.ProductVersion}");

.NET Frameworkでも有効

using System;
using System.Diagnostics;

class Program
{
    static void Main()
    {
        var verInfo = FileVersionInfo.GetVersionInfo(
            @"C:\Windows\Notepad.exe");
        Console.WriteLine("Notepad.exe");
        Console.WriteLine($"会社名:{verInfo.CompanyName }");
        Console.WriteLine($"製品バージョン:{verInfo.ProductVersion}");
    }
}

2021/3/10:この記事は別のブログで投稿した記事を移動したものです。