2010-01-07 6 views
4

Last-Modified 헤더를 사용하는 HTTP 리소스를 개발했으며 응용 프로그램의 모든 수정 내용을 반영해야합니다. 빌드 날짜 나 마지막 애플리케이션 업데이트 날짜를 알려주기 위해이 필드를 업데이트하고 싶습니다. 내가 생각한 몇 가지 해결책은 다음과 같습니다.빌드를 기반으로 설정을 업데이트하려면 어떻게해야합니까?

  1. 응용 프로그램이 빌드 될 때마다 빌드 스크립트를 사용하여 DateTime 설정을 변경하십시오.

  2. 는 응용 프로그램 폴더 더 재미있는 것 같다 무엇 접근

에있는 모든 파일의 최신 수정 시간을 가져 오기? 어떤 제안이 있으십니까?

답변

2
  1. 매우 쉽습니다. 간단한 파일 (예 : xml)을 작성하고 포함 된 리소스로 추가하여 앱에 컴파일 할 수 있습니다. 이것은 당신에게 당신이 요구하는 어떤 형태의 정보라도 제공 할 수있는 자유를줍니다.

  2. 저는 이것을 피합니다. 문제가 발생하기 쉽습니다 (예 : 로그 파일이 폴더에 쓰여진 경우 빌드 날짜 대신 오늘 날짜가보고됩니다). Application.StartupPath (즉, 기본 .exe 파일)에서 날짜 스탬프를 더 쉽고 쉽게 읽을 수 있습니다.

  3. AssemblyInfo에 [assembly: AssemblyVersion("1.23.*")] 버전을 지정하면 컴파일러에서 자동으로 빌드 날짜와 시간을 버전에 추가합니다 조금씩 보일 것입니다 : 1.23.4567.12345). 그런 다음 사용하여 컴파일 날짜/시간 읽기 (검색 히트에서 끼를하지만, 약 바로 보이는) 할 수 있습니다

AssemblyName an = Assembly.GetEntryAssembly().GetName(); 
DateTime date = new DateTime(2000, 1, 1, 0, 0, 0); 
date += TimeSpan.FromDays(an.Version.Build) + TimeSpan.FromSeconds(an.Version.Revision * 2); 

+0

매우 흥미로운! –