Windows PE(可移植可执行文件)文件包含显示在“详细信息”选项卡下的文件“属性”对话框中的元数据。似乎任意元数据都可以出现在那里。
我想要做的是将一段元数据添加到我构建的C#类库中,其值是来自构建项目的git repo HEAD的提交ID。我不能只使用CLR AssemblyVersionAttribute
来设置git commit id,因为CLR要求以标准a.b.c.d
版本格式显示。此外,我理想地希望在那里保留用户有意义的版本号,但总是有办法查找,给定实际的PE文件,可以重新创建它的提交ID。
如果有一个托管API可以做到这一点,那就更好了,但我愿意P / Invoke来完成这项工作。
答案 0 :(得分:1)
详细信息选项卡中的信息来自VERSIONINFO资源,但我不确定如何从.NET世界访问该信息...
答案 1 :(得分:1)
啊!我刚刚发现了AssemblyInformationalVersionAttribute
,它允许给出一个任意字符串,在所述对话框的Details选项卡中显示为“Product version”值。这看起来可能只是我需要的东西。