2

たとえば、1 つのデモ サーバーを共有する 2 つのチームがあるとします。彼らは 1 日に数回公開します。いつ (日付と時刻)、誰によって (メンバー名) が最後に公開されたかを知るにはどうすればよいですか? パブリッシュ通知を取得するための Visual Studio オプションまたは TFS 設定がある可能性がありますか?

4

1 に答える 1

1

次のコードを使用して、ビルド タイムスタンプを取得できます。

    /// <summary>
    /// Read the linker timestamp from an executable.
    /// </summary>
    private DateTime RetrieveLinkerTimestamp(String strFileName)
    {
        try
        {
            //Open file
            string filePath = strFileName;
            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();
                }
            }

            //Get timestamp
            int i = System.BitConverter.ToInt32(b, c_PeHeaderOffset);
            int secondsSince1970 = System.BitConverter.ToInt32(b, i + c_LinkerTimestampOffset);

            //Convert to date/time
            DateTime dt = new DateTime(1970, 1, 1, 0, 0, 0);
            dt = dt.AddSeconds(secondsSince1970);
            dt = dt.AddHours(TimeZone.CurrentTimeZone.GetUtcOffset(dt).Hours);
            return dt;
        }
        catch (Exception ex)
        {
            throw new Exception("Error in RetrieveLinkerTimestamp", ex);
        }
    }
于 2012-08-24T09:23:19.037 に答える