Câu hỏi Làm thế nào để đặt ngày xây dựng ứng dụng ở đâu đó trong ứng dụng?


Tôi muốn đặt ngày ứng dụng được xây dựng ở đâu đó trong ứng dụng. Nói về hộp. Bất kỳ ý tưởng làm thế nào điều này có thể được thực hiện? Tôi cần phải làm điều này cho C # nhưng tôi cũng đang tìm kiếm một ý tưởng chung, vì vậy bạn có thể trả lời điều này cho bất kỳ ngôn ngữ cụ thể khác với C #.


10
2018-03-05 05:47


gốc




Các câu trả lời:


Thông thường chúng ta chỉ cần thực hiện ngày sửa đổi cuối cùng của tệp thực thi. Điều này sẽ được thiết lập khi exe được xây dựng và thường không bao giờ thay đổi (ngắn của ai đó thực sự chỉnh sửa các tập tin). Khi tập tin được cài đặt, sao chép, di chuyển, vv, Windows không thay đổi giá trị đó.

DateTime buildDate = 
   new FileInfo(Assembly.GetExecutingAssembly().Location).LastWriteTime;

Chúng tôi sử dụng kỹ thuật này cho các hộp thoại về các ứng dụng C # và C ++ của chúng tôi.


19
2018-03-05 06:27



Điều này làm việc hoàn hảo. - Nikhil
Nếu bạn đang làm việc với các hội đồng GAC, điều này sẽ trở lại khi lắp ráp này đã được cài đặt. - Rubens Farias


Số thứ ba của phiên bản lắp ráp là ngày tháng julian với 0 = 1 Jan 2000 nếu bạn đang sử dụng [assembly: AssemblyVersion ("1.0. *")]

ví dụ.

DateTime buildDate = new DateTime(2000,1,1).AddDays(
  System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.Build
 );

14
2018-03-05 05:55



Và, làm thế nào / ở đâu chính xác bạn làm điều đó, thực tế? "*" không được phép trong trường Thông tin Lắp ráp thông thường trong thuộc tính dự án. - Nyerguds
Ah, đừng bận tâm. Nó chấp nhận "*" làm giá trị thứ ba trong hộp thoại thuộc tính nếu trường cuối cùng bị để trống. Cám ơn vì cái này. Trên một lưu ý liên quan, trường thứ tư (Revision) là dấu thời gian, nhưng nó phải được nhân với 2 trước khi nó có thể được sử dụng cho AddSeconds (). - Nyerguds


Bạn Nên đang sử dụng kiểm soát phiên bản - Subversion là miễn phí. Sau đó, bạn có thể bao gồm một số từ hệ thống kiểm soát phiên bản sẽ xác định rõ ràng mã nguồn được sử dụng để tạo ứng dụng. Một ngày sẽ không làm điều đó. Có những ưu điểm khác nữa.

  • Toàn bộ lịch sử của tất cả các thay đổi đối với dự án.
  • Làm việc liền mạch với các nhà phát triển khác trên cùng một dự án.

EDIT: Nikhil đã làm tất cả điều này. Nhưng vì một số lý do không thể hiểu được anh ta cũng đã được kể để kể cả ngày tháng. Tôi sẽ để lại câu trả lời này anyway, cho độc giả trong tương lai của câu hỏi này.


2
2018-03-05 07:55



Đó là chính xác những gì tôi đã giải thích, số sửa đổi là tất cả những gì bạn cần, đó là chính xác những gì chúng tôi có ngay bây giờ. Nhưng vì một lý do nào đó mà tôi không thể hiểu được, tôi đã được cho biết bao gồm ngày và giờ chính xác mà ứng dụng được xây dựng. - Nikhil
Điều này không liên quan đến câu hỏi nhưng là lời khuyên chung chung. - Nikhil
Tôi đã tự động thành công với nuget.org/packages/StampSvn.Fody - mamuesstack


Thường có các từ khóa trong hệ thống kiểm soát mã nguồn của bạn cho loại điều này.

Nếu không, hãy xem xét bao gồm ngày và giờ trong số phiên bản hoặc chỉ cần tạo một tệp mã nguồn nhỏ chứa ngày và giờ và được đưa vào trong bản dựng


0
2018-03-05 05:57