2012-11-12 6 views
1

다른 개발자가 사용하는 서버가 있으므로 현재 사용하는 dll 버전을 기록합니다. 나는 그것의 버전을 검색 반사를 사용하는 클라이언트를함으로써 그렇게 :C# 컴파일시 소스 코드 해시

Assembly.GetEntryAssembly().GetName().Version.ToString(); 

그것은 좋다, 그러나 TFS를 사용하는 어플의 개발자 와서 스스로가에게 빌드를 수행하기 때문에 그들은 최신 버전이있는 경우, 내가 볼 수 없습니다 근원의. 컴파일 태그처럼, 생성 소스 코드의 해시를 쉽게 허용 할 수있는 트릭이 있습니까?

참고 : assembly.Location을 사용하여 dll의 MD5을 보내려고했지만 해시 값이 2 개의 컴파일 사이에서 변경되기 때문에 쓸모가 없습니다 (생성 된 DLL 안에 컴파일 타임 스탬프가있는 것으로 가정).

답변

-1

보기 쉬운 방법이 없습니다.

0

이것은 다음 가장 중요한 공동 작업 문제입니다. 버전이 오래되었다는 것을 알게 된 순간. 그 사실을 알리십시오. 버전이 오래된 버전이 아니라면 개발자는 실수로 버전 ID를 증가시키지 않았 음을 의미합니다.

다른 말로 표현하면, 사람들 사이에 그것을 지정하고 이러한 종류의 도구 (있는 경우)에 의존하지 마십시오. 실수를 피하는 데 도움이되는 복잡한 도구를 만들려고 시도하지만 인간은 다시 실수를 만들 수있는 방법을 찾습니다.

그래서 당신 사이에 견고한 관계 구조를 만드는 것이 좋습니다.

+0

나는 명확하지 않을 수 있습니다. 이러한 도구가 있는지 여부를 알고 싶습니다. #warning, // TODO 또는 AssemblyVersion ("1.0. *")과 같은 간단한 도구가 있습니다. 존재하는 #SourceFileHash가 있는지 알고 싶습니다 ... –

0

미리 빌드 이벤트에 코드 파일을 해시/마지막으로 쓰기 위해 도구를 만듭니다.

결과를 cs 파일 또는 포함 된 리소스 파일에 씁니다.

결과 파일은 위의 작업에서 제외해야합니다.

빌드 건너 뛰기 (최신) 기능이 작동하지 않도록하려면 쓰기 전에 파일을 비교하십시오.

그리고 IDE에서 파일을 여는 경우 빌드 할 때 '외부에서 변경'프롬프트가 표시됩니다.