【问题标题】:Current year in AssemblyInfo copyrightAssemblyInfo 版权中的当年
【发布时间】:2009-12-30 12:10:26
【问题描述】:

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

我试过了:

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

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

【问题讨论】:

    标签: asp.net assemblyinfo copyright-display


    【解决方案1】:

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

    你应该这样做吗?

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

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

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

      • 同意。对于具有大量项目或 AssemblyInfo.cs 文件的节目,可能值得自动化您的脚本以每年运行一次,但它不属于构建过程。
      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

        • 最佳答案!
        【解决方案5】:

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

        Dynamically display current year in assembly info

        【讨论】:

          猜你喜欢
          • 2017-06-09
          • 2017-10-10
          • 2012-05-29
          • 2017-06-27
          • 2018-06-18
          • 1970-01-01
          • 2018-01-14
          相关资源
          最近更新 更多