LenovoLegionToolkit

Форк
0
36 строк · 1.2 Кб
1
using System;
2
using System.Globalization;
3
using System.Reflection;
4

5
namespace LenovoLegionToolkit.Lib.Extensions;
6

7
public static class AssemblyExtensions
8
{
9
    public static DateTime? GetBuildDateTime(this Assembly assembly)
10
    {
11
        const string buildVersionMetadataPrefix = "+build";
12

13
        var attribute = assembly.GetCustomAttribute<AssemblyInformationalVersionAttribute>();
14
        if (attribute?.InformationalVersion == null)
15
            return null;
16

17
        var value = attribute.InformationalVersion;
18
        var index = value.IndexOf(buildVersionMetadataPrefix, StringComparison.InvariantCultureIgnoreCase);
19
        if (index <= 0)
20
            return null;
21

22
        value = value[(index + buildVersionMetadataPrefix.Length)..];
23

24
        // ReSharper disable once StringLiteralTypo
25
        if (DateTime.TryParseExact(value, "yyyyMMddHHmmss", CultureInfo.InvariantCulture, DateTimeStyles.None, out var result))
26
            return result;
27

28
        return null;
29
    }
30

31
    public static string? GetBuildDateTimeString(this Assembly assembly)
32
    {
33
        // ReSharper disable once StringLiteralTypo
34
        return GetBuildDateTime(assembly)?.ToString("yyyyMMddHHmmss");
35
    }
36
}
37

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.