是否有可能通过AssemblyInfo.cs文件中的DateTime.Now.Year包含当前年份?
我试过了:
[assembly: AssemblyCopyright("Copyright " + DateTime.Now.Year)]
但似乎这个论点只能是一个不变的表达。
答案 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)
可以使用模板文件。在下面的帖子中查看我的答案