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