在 Java 中,我们可以声明一个静态字符串,其值为 $HeadURL:$,每次 Subversion 提交都会更新该值。然后可以从生成的类文件中提取该文件,以查找与该类文件相对应的源文件(以及修订信息)。
在 C 语言中,我们可以声明一个静态 char[] 来执行相同的操作。
在 C# 中实现此目标的推荐方法是什么?
基本上,我正在寻找使用已由 Subversion 更新的 $HeadURL:$ 信息的最佳实践,以将生产代码与源代码相匹配。
我熟悉汇编版本等,但这并没有为我们提供我们正在寻找的粒度。
请您参考如下方法:
如果我理解正确的话,您正在尝试每个源文件执行此操作,这只会让事情变得困难:) 如果您在构建之前进行标记,则与关联的修订号该标记是对可执行文件中使用的每个源文件的明确引用,并为您提供精确的粒度。
您可以使用 SVN 的 Revision
关键字而不是 HeadURL
来包含修订号。您只需在每个 EXE/DLL 的一个源文件中包含此修订号(通常是传递给 AssemblyInfo.cs
中相应版本相关属性的字符串值),其中这就是 @serg10 所指的。
在 C# 中对每个文件执行此操作是(不必要的)痛苦,因为该语言没有“模块”级数据的概念。并且向每个文件中的至少一种类型添加属性是乏味的,并且容易被遗忘或输入错误。