2011-05-11 4 views
6

실행중인 응용 프로그램 또는 dll의 버전을 얻는 방법을 알고 있습니다. 그러나 나는 비 실행 응용 프로그램의 속성을 찾아야합니다.실행 파일이 아닌 실행 파일에서 버전 가져 오기

주 응용 프로그램에 파일 연결을 설정할 수있는 작은 프로그램이 있습니다. 이 응용 프로그램은 시작시 인수를 허용하지 않기 때문에 이전 버전을 실행하는 사용자에게 아무런 의미가 없습니다. 따라서 파일 연결자가 시작되면 먼저 주 앱을 찾을 수 있는지 확인합니다. 그러면 그 속성을 실행하지 않고 확인할 수 있습니다. 인수를 허용 할 수있는 버전보다 이전 버전 인 경우 연결을 설정하기보다는 업데이트하도록 사용자에게 알려야합니다.

System.IO.FileInfo를 살펴 봤지만 버전 정보가 포함되어 있지 않은 것으로 보입니다.

감사

+0

Windows에 파일의 버전 정보가 없습니다. – Hogan

+2

@hogan 분명히 .exe 및 .dll 파일은이 정보를 마우스 오른쪽 단추로 클릭하고 속성을 선택한 다음 세부 정보를 볼 수 있기 때문에 어딘가에이 정보를 저장합니다. 저기에있어. – dandan78

+2

PE 파일은 Windows에서 버전 정보를 가질 수 있습니다. 그것은 PE 파일에 내장 된 리소스 안에 있습니다. – CodesInChaos

답변

11

당신은 FileVersionInfo.GetVersionInfo() 사용할 수 있습니다

FileVersionInfo vi = FileVersionInfo.GetVersionInfo("myfile.dll"); 

문자열 showVersion = vi.FileVersion;

// showVersion 실제 버전 번호

이 반환 파일/문서 메타 데이터이며 관리되지 않는 DLL을하거나 워드 문서뿐만 아니라 사용할 수 있습니다.

또한 조립을 사용할 수 있습니다 :이 포함됩니다

Version v = Assembly.ReflectionOnlyLoadFrom("myfile.dll").GetName().Version; 

. NET 버전 정보.

+0

정확히 내가 필요로하는 것은 간단합니다! – ScruffyDuck

관련 문제