Вопрос по c#, vb.net – Динамически отображать текущий год в информации о сборке

10

Как установить текущий год в файле AssemblyInfo?

я использовал

Вместо этого:

<code><Assembly: AssemblyCopyright("Copyright 2012, Company Name.")> 
</code>

попробовал это:

<code><Assembly: AssemblyCopyright("Copyright" + DateTime.Now.Year.ToString() + ", Company Name.")> 
</code>

Я получаю недопустимую постоянную ошибку.

Я не хочу использовать записи реестра, каков оптимальный способ сделать это? (так что, когда пользователь щелкает правой кнопкой мыши на EXE и ищет информацию о сборке, можно увидеть текущий год).

Благодарю.

Это невозможно. Tejs
Добавьте в Outlook оповещение по календарю или все, что вы используете на 1 января каждого года, чтобы изменить все свои даты авторских прав в вашем приложении. :) Joe
У вас нет текущего года или года, когда происходит сборка? Antonio Bakula
Заявление об авторском праве является константой, встроенной в информацию о сгенерированном исполняемом файле. Ожидаете ли вы, что Windows будет запускать функцию в вашей программе каждый раз, когда она пытается получить авторское право? M.Babcock

Ваш Ответ

4   ответа
1

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

Вы можете взглянуть на эту тему:Как найти и заменить текст в файле, используя среду командной строки Windows?

1

blyInfo.cs, как мы делаем, чтобы изменить версию каждой сборки для каждой сборки.

Для получения дополнительной информации посетитеhttp://msbuildtasks.tigris.org/

1

лучший способ - интегрировать это в процесс сборки с помощью таких инструментов, какNAnt или жеMSBuild.

Вот статья, которая объясняет, как изменить AssemblyInfo с помощью MSBuild: обновлениеСборки с номером версии.

23

https://stackoverflow.com/a/827209/857307) это действительно может быть полезно здесь.

Попробуй это.

Добавьте новый файл в ваш исходный репозиторий, где бы он был общим для всех проектов в вашем решении. Назовите файл примерно как AssemblyCopyright.tt

В файле добавьте следующий код для c #

<#@ template language="C#" #>
using System;
using System.Reflection;

[assembly: AssemblyCopyright("Copyright © CompanyName <#=DateTime.Now.Year#>")]

или VB

<#@ template language="VB" #>
<#@ output extension=".vb" #>
Imports System
Imports System.Reflection

<Assembly: AssemblyCopyright("Copyright © CompanyName <#=DateTime.Now.Year#>")> 

Затем удалите атрибут AssemblyCopyright из каждого файла AssemblyInfo.cs.

Наконец, добавьте ссылку на файл AssemblyCopyright.tt для каждого из ваших проектов.

Файл шаблона будет воссоздавать новый файл AssemblyCopyright.cs для каждой сборки с правильным годом.

Похожие вопросы