2009-12-30 1 views
3

Есть ли возможность включить текущий год через DateTime.Now.Year в AssemblyInfo.cs-файл?Текущий год в AssemblyInfo copyright

Я пробовал:

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

Но, кажется, аргумент может быть только константа.

ответ

4

Как уже было сказано, вы не можете поместить значения в атрибуты, которые не являются константами. DateTime.Now не является постоянным значением и поэтому не может использоваться в атрибуте.

Если вам особенно хотелось этого поведения, вы можете добавить скрипт для предварительной компиляции, который вставляет дату в файлы.

Лично, учитывая скорость, с которой изменяется год, было бы потрачено время, потраченное на создание автономной задачи для этого. У меня есть многочисленные проекты, которые имеют «2009» в своей сборке. У меня есть задача в моем списке для завершения в новом году, чтобы запустить инструмент Regex, чтобы найти и заменить все экземпляры «2009» на «2010» в файлах AssemblyInfo.cs.

Я бы сказал, что это намного меньше, чем интеграция в процесс сборки.

+0

Согласованный. Для показа с большим количеством проектов или файлов AssemblyInfo.cs может потребоваться автоматизировать запуск вашего скрипта каждый год, но он не принадлежит к процессу сборки. –

3

Это невозможно, потому что в атрибутах .NET могут содержаться только константные выражения. Вы можете использовать до этапа компиляции, который изменяет файл и вставляет текущий год.

6

Это может быть автоматизировано, но вам нужно будет использовать метод, который обрабатывает предварительную сборку файла AssemblyInfo.cs.

Должны ли вы это делать?

Срок действия авторских прав не перезапускается при восстановлении кода. Если в настоящее время авторское право находится на 2009 год, оно должно оставаться в 2009 году независимо от текущего года, если только вы не вносите существенные изменения кода в более поздний год.

* Для оценки «значительного» вам необходимо обратиться к адвокату, а не к разработчику программного обеспечения.

1

Используйте @ {0} Microsoft в файле AssemblyInfo.cs и используйте string.Format на стороне сервера, чтобы заменить {0} на значение текущего года.

+0

лучший ответ! – anatol