SORU
21 EKİM 2009, ÇARŞAMBA


Görüntüleme Yapım Tarihi

Ben şu anda bir uygulama başlık penceresinde build numarasını görüntüleniyor. Bu iyi ve güzel dışında bir şey ifade etmiyor çoğu kullanıcı, tanımak isteyen varsa onlar en son yapı - eğilimi söz olarak "geçen Perşembe" yerine inşa 1.0.8.4321.

Planı oluşturmak tarih yok yerine koymaktır - "" örneğin. 21/10/2009 App inşa

İnşa tarihi bu şekilde kullanmak için bir metin dizesi olarak çıkarmak için programlı bir yol bulmak için mücadele ediyorum.

Yapı numarası için kullandım

Assembly.GetExecutingAssembly().GetName().Version.ToString()

o geldi nasıl tanımladıktan sonra.

İçin derleme tarih (ve saat, bonus puan için) gibi bir şey istiyorum.

Göstericiler burada çok takdir doğru olmadığını bahane kelime oyunu), ya da daha güzel çözümler...

Mark

CEVAP
21 EKİM 2009, ÇARŞAMBA


Jeff Atwood Determining Build Date the hard way Bu konu hakkında söylemek istediğim şeyler vardı.

En güvenilir yöntem çıkacak alınıyor linker damgası PE header gömülü olan çalıştırılabilir dosya -- bazı C# kodu (Joe Spivey) için yorum Jeff'in madde:

private DateTime RetrieveLinkerTimestamp()
{
    string filePath = System.Reflection.Assembly.GetCallingAssembly().Location;
    const int c_PeHeaderOffset = 60;
    const int c_LinkerTimestampOffset = 8;
    byte[] b = new byte[2048];
    System.IO.Stream s = null;

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

    int i = System.BitConverter.ToInt32(b, c_PeHeaderOffset);
    int secondsSince1970 = System.BitConverter.ToInt32(b, i   c_LinkerTimestampOffset);
    DateTime dt = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
    dt = dt.AddSeconds(secondsSince1970);
    dt = dt.ToLocalTime();
    return dt;
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • echifitness

    echifitness

    9 Kasım 2008
  • Facebook Developers

    Facebook Dev

    24 ŞUBAT 2009
  • How To Cook That

    How To Cook

    16 NİSAN 2011