Windows PE(便携式可执行文件)文件包含出现在文件的“属性”对话框中“详细信息”选项卡下的元数据。似乎任意元数据可以出现在那里。
我想做的是将一段元数据添加到我构建的 C# 类库中,其值是来自构建项目的 git repo HEAD 的提交 ID。我不能只使用 CLRAssemblyVersionAttribute
来设置 git commit id,因为 CLR 要求它以标准a.b.c.d
版本格式显示。此外,理想情况下,我希望保留对用户有意义的版本号,但总是有办法查找,给定实际的 PE 文件,可以重新创建它的提交 ID。
如果有一个托管 API 可以做到这一点,那就更好了,但我愿意 P/Invoke 来完成这件事。