【发布时间】:2009-07-29 20:17:56
【问题描述】:
代替major.minor.build.revision 格式,我想使用日期和时间作为版本号。更像是日.月.年.时间。有没有办法改变 AssemblyInfo.cs 中 AssemblyVersion 属性的格式?
【问题讨论】:
标签: c# .net visual-studio-2005 assemblyinfo
代替major.minor.build.revision 格式,我想使用日期和时间作为版本号。更像是日.月.年.时间。有没有办法改变 AssemblyInfo.cs 中 AssemblyVersion 属性的格式?
【问题讨论】:
标签: c# .net visual-studio-2005 assemblyinfo
你可以在里面放任何你想要的数字(只要它们不会溢出内存中包含它们的数据类型)并随意调用它们。但是,我不确定您为什么要这样做,因为标准格式通常会在 build 字段中存储某种形式的日期。
例如,这里是我工作时使用的汇编版本格式:
5.1.729.1
这告诉我这是库 5.1 版的程序集,于 7 月 29 日构建,是当天的第一个构建。同一天的后续构建只需增加 revision 字段。
【讨论】:
最简单的方法是编写您自己的构建任务来处理此问题,然后让 .csproj 文件调用您的任务以使用您的默认规则对其进行更新。 using a custom MSBuild task to increment version numbers 上有一篇文章可以作为指南。过去我们在这里做过类似的事情,发现效果很好。
不过,我不相信 VS2005 中包含任何工具可以做到这一点。
【讨论】:
我建议坚持AssemblyVersion 等所使用的版本号的现有方案 - 它们具有众所周知的含义,并且可能会混淆人们反对它们。
但是,您可以轻松创建自己的程序集级属性并将其用于您的日期/时间。不幸的是,DateTime 类型无法嵌入到元数据中,因此您最好使用字符串 - 但您的属性可以在执行时将其转换为 DateTime。
【讨论】:
您可以在构建脚本中构建相关的 assemblyinfo 代码片段——使用 IronPython 或 F# 作为脚本工具非常简单。
【讨论】:
如果您想使用脚本或类似的东西自动更改这些版本。我建议使用http://www.codeproject.com/KB/macros/versioningcontrolledbuild.aspx
它也可以从命令行运行。
【讨论】: