Внедрить отметку времени компиляции приложения - PullRequest
0 голосов
/ 16 июня 2010

Существует ли простой способ настройки в процессе сборки для записи в метку времени сборки, которая будет отображаться в приложении, чтобы иметь что-то вроде «Эта страница была последний раз обновлена: 26.06.2010»

1 Ответ

2 голосов
/ 16 июня 2010

Одним из решений было бы внедрить эту информацию в атрибут сборки во время вашей сборки. Это можно сделать с помощью задач сообщества MSBuild Time и AssemblyInfo:

<Time>
    <Output TaskParameter="Month" PropertyName="Month" />
    <Output TaskParameter="Day" PropertyName="Day" />
    <Output TaskParameter="Year" PropertyName="Year" />
    <Output TaskParameter="Hour" PropertyName="Hour" />
    <Output TaskParameter="Minute" PropertyName="Minute" />
    <Output TaskParameter="Second" PropertyName="Second" />
</Time>

и

<AssemblyInfo CodeLanguage="CS"  
    OutputFile="$(MSBuildProjectDirectory)\GlobalInfo.cs" 
    AssemblyDescription="This page was last updated: $(Month)/$(Day)/$(Year)"
/>

Затем вы включите исходный файл в ваш проект (в этом примере GlobalInfo.cs) Для доступа к этому значению в коде вы должны использовать что-то вроде этого:

public static string GetAssemblyDescription(Type t)
{
    string result = String.Empty;
    var items = t.Assembly.GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false);
    if (items != null && items.Length > 0)
    {
        AssemblyDescriptionAttribute attrib = (AssemblyDescriptionAttribute)items[0];
        result = attrib.Description;
    }
    return result;
}

Type t = typeof(MyClass);
string description = GetAssemblyDescription(t);
Console.WriteLine(description);
...