2009-12-28 2 views
1

Windows PE (휴대용 실행 파일) 파일에는 파일의 속성 대화 상자에있는 정보 탭에 나타나는 메타 데이터가 들어 있습니다. 거기에 임의의 메타 데이터가 나타날 수 있습니다.PE 메타 데이터를 추가하는 방법은 무엇입니까?

내가 뭘하고 싶은지는 프로젝트의 빌드 된 git repo HEAD의 커밋 ID 값을 가진 C# 클래스 라이브러리에 메타 데이터 조각을 추가하는 것입니다. CLR은 표준 a.b.c.d 버전 형식으로 표시되어야하기 때문에 CLR AssemblyVersionAttribute을 사용하여 git commit id를 설정할 수는 없습니다. 게다가, 나는 거기에 사용자가 의미있는 버전 번호를 유지하는 것이 이상적이지만, 실제 PE 파일을 다시 볼 수있는 커밋 ID를 보면 항상 찾는 방법이있다.

관리되는 API가 있다면 훨씬 더 좋아 지겠지만 P/Invoke를 통해이 작업을 수행 할 수 있습니다.

+0

체크 아웃 : [관리되는 모듈의 CLR 메타 데이터 신화?] (http://izlooite.blogspot.com/2009/09/what-is-clr-metadata-in-managed-module.html#more) –

답변

1

상세 정보 탭에있는 정보는 VERSIONINFO 자원에서 유래하지만 난 당신이 .NET 세계에서 그 접근 할 방법을 잘 모르겠어요 ...

+0

흥미 롭습니다 . 그것이 사실이라면, 임의의 데이터를이 탭에 추가 할 수 없다고 생각합니다. :( –

+1

exe의 문자열 버전 정보 필드에 임의의 데이터를 추가 할 수는 있지만 항상 탐색기 속성 페이지에 표시 할 수있는 것은 아닙니다. 실제로 속성 페이지가 표시하는 내용은 Windows Explorer 버전에 따라 다릅니다 .Windows XP에서는 추가 필드를 얻을 수 있습니다 Vista 나 Win7에서는 그렇지 않습니다. – Francis

1

아! 방금 대화 상자의 세부 정보 탭에 "제품 버전"값으로 나타나는 임의의 문자열을 허용하는 AssemblyInformationalVersionAttribute을 발견했습니다. 이것은 내가 필요한 것일 수도있는 것처럼 보입니다.

관련 문제