티스토리 뷰

Development

[C#] 빌드시간 가져오기

devbible 2023. 10. 8. 23:19

프로그램 로직에서 이 프로그램의 빌드한 시간을 알고 싶다.

수동으로 시간을 입력하거나 별도의 스크립트를 넣기 싫다.

간한하게 빌드시 결과물에 빌드시간이 들어가게 해보자.

 

1. Custom Attribute를 작성한다.

[AttributeUsage(AttributeTargets.Assembly)]
public class BuildTimeAttribute : Attribute
{
    public string BuildTime { get; set; }
    
    // 빌드시 생성자 호출
    public BuildTimeAttribute(string buildTime)
    {
        BuildTime = buildTime;
    }

    // 빌드시간을 가져오는 함수
    public static string GetAssemblyBuildTime()
    {
        var assembly = System.Reflection.Assembly.GetExecutingAssembly();
        var attr = Attribute.GetCustomAttribute(assembly, typeof(BuildTimeAttribute)) as BuildTimeAttribute;

        return attr?.BuildTime ?? string.Empty;
    }
}

 

2. 프로잭트 설정에 위 작성한 Custom Attribute를 호출하도록 설정한다

<ItemGroup>
    <AssemblyAttribute Include="MyApp.BuildTime">
        <_Parameter1>$([System.DateTime]::Now.ToString("yyyy-MM-dd HH:mm:ss"))</_Parameter1>
    </AssemblyAttribute>
</ItemGroup>

3. 코드에서 빌드시간을 가져다 사용한다.

var appBuildTime = BuildTimeAttribute.GetAssemblyBuildTime();
Console.WriteLine(appBuildTime); // 2023-10-08 23:04:00

[작성] devbible.tistory.com

댓글