5

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

我试过了:

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

但似乎参数只能是一个常量表达式。

4

5 回答 5

6

这可以自动执行,但您需要使用预构建操作 AssemblyInfo.cs 文件的方法。

你应该这样做吗?

当您重建代码时,版权条款不会重新开始。如果版权当前为 2009 年,则无论当前年份如何,它都应保持在 2009 年,除非您在以后的一年中对代码进行了重大更改。

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

于 2009-12-30T12:35:25.083 回答
4

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

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

就个人而言,考虑到年份变化的速度,创建一个自主任务来完成这项工作将是浪费时间。我有许多项目在他们的装配信息中有“2009”。我的列表中有一项任务要在新的一年完成,运行正则表达式工具来查找 AssemblyInfo.cs 文件中的所有“2009”实例并将其替换为“2010”。

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

于 2009-12-30T12:23:36.853 回答
3

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

于 2009-12-30T12:13:15.440 回答
1

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

于 2010-01-29T10:01:54.947 回答
1

可以使用模板文件。看看我在以下线程上的回答

在装配信息中动态显示当前年份

于 2013-10-11T09:40:03.820 回答