惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
有赞技术团队
有赞技术团队
Jina AI
Jina AI
H
Help Net Security
D
Docker
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Blog — PlanetScale
Blog — PlanetScale
Hugging Face - Blog
Hugging Face - Blog
罗磊的独立博客
MyScale Blog
MyScale Blog
N
Netflix TechBlog - Medium
B
Blog RSS Feed
Martin Fowler
Martin Fowler
WordPress大学
WordPress大学
T
The Blog of Author Tim Ferriss
U
Unit 42
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
MongoDB | Blog
MongoDB | Blog
美团技术团队
M
MIT News - Artificial intelligence
阮一峰的网络日志
阮一峰的网络日志
博客园 - 司徒正美
Microsoft Security Blog
Microsoft Security Blog
IT之家
IT之家

博客园 - dcrenl

解决CapabilityAccessManager.db-wal 文件过大 Java 应用程序在linux环境中读取和写入 Microsoft Access 数据库(包括 .mdb 和 .accdb 格式)的开源库 windows 版本nginx报错:maximum number of descriptors supported by select() is 1024 while 删除多个网关 dot net6 在win7上运行报错 远程重启服务器 sqlserver 20008 R2 关闭TLS1.0无法启动服务的解决办法 rust 模块和引用 nohup java按天输出日志 idea 社区版本创建android原生项目 解决win11输入法自定义短语有多个当前日期只有最后一个生效 postgresql使用for循环 Win10打开IE自动跳转至Edge解决办法 身份认证与授权 pnpm : 无法加载文件 \AppData\Roaming\npm\pnpm.ps1,因为在此系统上禁止运行脚本。 - dcrenl C# 获取时间戳 win11 输入法自定义短语输出日期时间变量 SM系列国密算法 Opera打不开网页解决办法 excel 数字转中文大写金额 nginx http跳转到https
C# 程序发布时加入发布时间
dcrenl · 2026-09-09 · via 博客园 - dcrenl
1. 修改 .csproj 文件‌

在 中添加以下配置,利用 MSBuild 的时间函数生成时间戳:

<PropertyGroup>
    <!-- 其他配置... -->
    <AssemblyMetadata Include="BuildTime" Value="$([System.DateTime]::Now.ToString('yyyy-MM-dd HH:mm:ss'))" />
</PropertyGroup>

注意‌:$([System.DateTime]::Now...) 是 MSBuild 的属性函数语法,能确保在编译时刻获取时间。如果使用的是较旧版本的 MSBuild 或特定 CI 环境,也可以使用 $(DateTime) 变量(需确保格式正确,如 yyyy-MM-dd HH:mm:ss)。‌注意‌:$([System.DateTime]::Now...) 是 MSBuild 的属性函数语法,能确保在编译时刻获取时间。如果使用的是较旧版本的 MSBuild 或特定 CI 环境,也可以使用 $(DateTime) 变量(需确保格式正确,如 yyyy-MM-dd HH:mm:ss)。

‌2. 在代码中读取
using System;
using System.Reflection;
using System.Linq;

public static string GetBuildTime()
{
    var assembly = Assembly.GetExecutingAssembly();
    // 查找名为 "BuildTime" 的自定义元数据
    var attribute = assembly.GetCustomAttribute<AssemblyMetadataAttribute>();
    
    // 如果有多个元数据,可能需要筛选 Key
    var buildTimeAttr = assembly.GetCustomAttributes<AssemblyMetadataAttribute>()
                                .FirstOrDefault(a => a.Key == "BuildTime");

    if (buildTimeAttr != null)
    {
        return buildTimeAttr.Value;
    }
    
    return "Unknown";
}

时间准确,反映实际编译时刻。
不依赖文件系统,不受部署方式(如 ZIP 解压、复制)影响。
适合 CI/CD 环境。