Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Memaparkan Tarikh Binaan Aplikasi Saya Secara Pengaturcaraan?
Menentukan tarikh binaan aplikasi anda adalah penting untuk pengguna menentukan sama ada mereka mempunyai versi terkini. Walaupun memaparkan nombor binaan adalah perkara biasa, ia biasanya memberikan sedikit maklumat. Artikel ini meneroka cara untuk mengekstrak tarikh binaan secara pemrograman dan memaparkannya dalam format yang mesra pengguna.
Tidak seperti nombor binaan, tiada cara langsung untuk mendapatkan semula tarikh binaan daripada metadata pemasangan. Walau bagaimanapun, kaedah yang boleh dipercayai adalah untuk mengekstrak cap masa pemaut yang dibenamkan dalam pengepala PE bagi boleh laku. Kod C# berikut menunjukkan teknik ini:
<code class="language-c#">public static DateTime GetLinkerTime(this Assembly assembly, TimeZoneInfo target = null) { var filePath = assembly.Location; const int c_PeHeaderOffset = 60; const int c_LinkerTimestampOffset = 8; var buffer = new byte[2048]; using (var stream = new FileStream(filePath, FileMode.Open, FileAccess.Read)) stream.Read(buffer, 0, 2048); var offset = BitConverter.ToInt32(buffer, c_PeHeaderOffset); var secondsSince1970 = BitConverter.ToInt32(buffer, offset + c_LinkerTimestampOffset); var epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); var linkTimeUtc = epoch.AddSeconds(secondsSince1970); var tz = target ?? TimeZoneInfo.Local; var localTime = TimeZoneInfo.ConvertTimeFromUtc(linkTimeUtc, tz); return localTime; }</code>
Untuk menggunakan kaedah ini, hanya panggil GetLinkerTime() pada pemasangan pelaksana:
<code class="language-c#">var linkTimeLocal = Assembly.GetExecutingAssembly().GetLinkerTime();</code>
Sila ambil perhatian bahawa kaedah ini tidak akan berfungsi dengan betul selepas .NET Core 1.1. Cap masa pemaut yang diekstrak akan memberikan tahun rawak dalam julat 1900-2020.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memaparkan Tarikh Binaan Aplikasi Saya Secara Pengaturcaraan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!