C# 编译,将构建时间写入程序集(需要新项目结构)
来源:
https://stackoverflow.com/questions/1600962/displaying-the-build-date#
自定义特性
namespace SuperDuper { [AttributeUsage(AttributeTargets.Assembly)] public class BuildDateTimeAttribute : Attribute { public DateTime Built { get; } public BuildDateTimeAttribute(string date) { this.Built = DateTime.Parse(date); } } }
编辑.csproj文件
<ItemGroup> <AssemblyAttribute Include="SuperDuper.BuildDateTime"> <_Parameter1>$([System.DateTime]::Now.ToString("s"))</_Parameter1> </AssemblyAttribute> </ItemGroup>
获取
private static DateTime? getAssemblyBuildDateTime() { var assembly = System.Reflection.Assembly.GetExecutingAssembly(); var attr = Attribute.GetCustomAttribute(assembly, typeof(BuildDateTimeAttribute)) as BuildDateTimeAttribute; return attr?.Built; }
上方可以添加自定义的特性,下面是一个简化的方式
编辑.csproj文件
<ItemGroup> <AssemblyMetadata Include="BuildTime1" Value="$([System.DateTime]::UtcNow.ToString(yyyy.MM.dd hh:mm:ss))" /> <AssemblyMetadata Include="BuildTime2" Value="$([System.DateTime]::UtcNow.ToString(o))" /> </ItemGroup>
获取
static void Main(string[] args) { var assembly = System.Reflection.Assembly.GetExecutingAssembly(); var attr = Attribute.GetCustomAttributes(assembly, typeof(AssemblyMetadataAttribute)).FirstOrDefault(); Console.WriteLine(((AssemblyMetadataAttribute)attr)?.Value); Console.Read( ); }
分类:
C#
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步