今年的AssemblyInfo版权所有

时间:2009-12-30 12:10:27

标签: asp.net assemblyinfo copyright-display

是否有可能通过AssemblyInfo.cs文件中的DateTime.Now.Year包含当前年份?

我试过了:

[assembly: AssemblyCopyright("Copyright " + DateTime.Now.Year)]

但似乎这个论点只能是一个不变的表达。

5 个答案:

答案 0 :(得分:6)

这可以自动化,但您需要使用一种方法来预构建AssemblyInfo.cs文件。

你应该这样做吗?

重建代码时,版权条款不会重新启动。如果版权目前是2009年,则无论当年如何,都应保留在2009年,除非您在晚些时候进行重大*代码更改。

*对于'重要'的价值,您需要咨询律师,而不是软件开发人员。

答案 1 :(得分:4)

如前所述,您不能将值放入非常量的属性中。 DateTime.Now不是常量值,因此不能在属性中使用。

如果您特别想要这种行为,可以添加一个预编译步骤,将日期插入到文件中。

就个人而言,考虑到年份变化的速度,创建自主任务的时间很少。我有很多项目在他们的装配信息中有“2009”。我在列表中有一个任务要在新的一年里完成,运行一个Regex工具来查找和替换AssemblyInfo.cs文件中“2009”的所有实例和“2010”。

我认为这比集成到构建过程要少得多。

答案 2 :(得分:3)

这是不可能的,因为在.NET中,属性可能只包含常量表达式。您可以使用修改文件并插入当前年份的编译前步骤。

答案 3 :(得分:1)

在AssemblyInfo.cs文件中使用@ {0} Microsoft,并使用服务器端的string.Format将{0}替换为当前年份值。

答案 4 :(得分:1)

可以使用模板文件。在下面的帖子中查看我的答案

Dynamically display current year in assembly info