Как получить дату сборки приложения ASP.NET? - PullRequest
2 голосов
/ 06 ноября 2008

Джефф писал о получении версии файла / datetamp некоторое время назад. Visual Studio не увеличивает сборку, пока вы не закроете / снова не откроете решение, поэтому получение метки времени кажется лучшим способом проверить, какую сборку вы используете.

Я портировал решение на C #

    // from http://www.codinghorror.com/blog/archives/000264.html
    protected DateTime getLinkerTimeStamp(string filepath){
        const int peHeaderOffset = 60;
        const int linkerTimestampOffset = 8;

        byte[] b = new byte[2048];
        Stream s = null;

        try {
            s = new FileStream(filepath, FileMode.Open, FileAccess.Read);
            s.Read(b, 0, 2048);
        }
        finally{
            if (s != null){
                s.Close();
            }
        }

        int i = BitConverter.ToInt32(b, peHeaderOffset);
        int secondsSince1970 = BitConverter.ToInt32(b, i + linkerTimestampOffset);
        DateTime dt = new DateTime(1970, 1, 1, 0, 0, 0);
        dt = dt.AddSeconds(secondsSince1970);
        dt = dt.AddHours(TimeZone.CurrentTimeZone.GetUtcOffset(dt).Hours);
        return dt;
    }

    protected DateTime getBuildTime()
    {
        System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
        return getLinkerTimeStamp(assembly.Location);
    }

Что, кажется, работает. Есть ли лучший / более официальный способ узнать, когда сайт был развернут?

1 Ответ

1 голос
/ 06 ноября 2008

Я думаю, что ваш самый простой маршрут - иметь временную метку в вашем web.config.

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

Другой вариант, доступный вам, если вы не используете инструмент автоматической сборки, - это добавить код в событие предварительной сборки в Visual Studio, чтобы обновить web.config для вас. Вот статья о Codeplex, которая должна помочь вам начать работу.

http://www.codeproject.com/KB/dotnet/configmanager_net.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...