【发布时间】:2009-12-30 12:10:26
【问题描述】:
是否有可能通过 DateTime.Now.Year 在 AssemblyInfo.cs 文件中包含当前年份?
我试过了:
[assembly: AssemblyCopyright("Copyright " + DateTime.Now.Year)]
但参数似乎只能是常量表达式。
【问题讨论】:
标签: asp.net assemblyinfo copyright-display
是否有可能通过 DateTime.Now.Year 在 AssemblyInfo.cs 文件中包含当前年份?
我试过了:
[assembly: AssemblyCopyright("Copyright " + DateTime.Now.Year)]
但参数似乎只能是常量表达式。
【问题讨论】:
标签: asp.net assemblyinfo copyright-display
这可以自动化,但您需要使用一种方法来操作预构建的 AssemblyInfo.cs 文件。
你应该这样做吗?
当您重新构建代码时,版权条款不会重新开始。如果版权当前为 2009 年,则无论当前年份如何,它都应保持在 2009 年,除非您在以后的一年中进行重大*代码更改。
*对于“重要”的价值,您需要咨询律师,而不是软件开发人员。
【讨论】:
如前所述,您不能将值放入非常量的属性中。 DateTime.Now 不是常量值,因此不能用于属性中。
如果您特别想要这种行为,您可以添加一个预编译步骤,将日期插入文件中。
就个人而言,考虑到年份变化的速度,花时间创建一个自主任务来完成这项工作是很浪费时间的。我有许多项目在他们的装配信息中有“2009”。我的列表中有一项任务要在新的一年完成,运行正则表达式工具来查找 AssemblyInfo.cs 文件中的所有“2009”实例并将其替换为“2010”。
我认为这比集成到您的构建过程中要少得多。
【讨论】:
这是不可能的,因为在 .NET 中属性可能只包含常量表达式。您可以使用修改文件并插入当前年份的编译前步骤。
【讨论】:
在 AssemblyInfo.cs 文件中使用 @{0} Microsoft 并在服务器端使用 string.Format 将 {0} 替换为当前年份值。
【讨论】:
可以使用模板文件。看看我在以下线程上的回答
【讨论】: