2010-08-24 2 views
1

[appname] .manifest 파일을 호스팅 웹 사이트에서 구문 분석하여 사용 가능한 경우 응용 프로그램 이름, 버전 및 아이콘을 추출 할 수있는 방법을 찾고 있습니다. 이렇게하면 쉽게 배치 할 수있는 컨트롤에 넣을 수 있습니다. 매니페스트 파일을 파싱하는 데 도움이되는 프레임 워크 호출이 있습니까? 내가 찾고 있어요응용 프로그램 매니페스트를 구문 분석 할 수있는 방법이 있습니까?

파일은 [APPNAME] .application 및/또는 [APPNAME] 별도로 .manifest

답변

0

당신은 당신이 System.Deployment.Application.InPlaceHostingManager 클래스를 사용하여 원하는 정보의 가장를 얻을 수 있습니다 - 이름에 속지 마십시오, 그것은 브라우저 호스팅의 ClickOnce 응용 프로그램을 위해 주로뿐만 아니라 독립형의 ClickOnce 응용 프로그램에 적용됩니다. 당신이 인스턴스를 초기화하고 그것에게 .application 파일의 URL을 통과하면 GetManifestAsync()를 호출 할 수 있습니다 - 이벤트 처리기에서 GetManifestCompleted를 들어, 응용 프로그램 이름과 버전을 얻을 수 있습니다 :

void iphm_GetManifestCompleted(object sender, GetManifestCompletedEventArgs e) { 
    Console.WriteLine("Application name: {0}", e.ApplicationIdentity); 
    Console.WriteLine("Application version: {0}", e.Version); 
} 

이 아이콘은 일반적으로 참조를 애플리케이션 매니페스트 (.application은 배포 매니페스트) -을 사용하여 앱 매니페스트에 액세스 할 수 있습니다. 위의 예에서 e.ApplicationManifest의 값을 얻게되면 XmlReader을 사용할 수 있습니다.

관련 XML 스키마를 연구하고 XQuery를 사용하여 아이콘을 찾는 것이 가장 좋습니다.

+0

이것은 내가 원하는 것을 대부분 보여줍니다. 감사. – AdamSane

0

System.Diagnostics.FileVersionInfo 당신을 위해 무거운의 대부분을 할 것입니다. 파일에서 메타 데이터를 추출하여 어셈블리의 제품 이름 & 버전을 확인합니다. (

는 또한 System.Reflection.Assembly를 사용하면 어셈블리의 리소스에 액세스 할 수 GetManifestResourceInfo(string), GetManifestResourceNames()GetManifestResourceStream(string)를 호출 할 수 있습니다 : 아이콘에 관해서는, 그 다른 이야기지만, 적어도 이것은 당신을위한 시작입니다 :

업데이트 아이콘 용).

+0

감사합니다. 그러나 * .application 및/또는 * .manifest xml 기반 파일을 구문 분석 할 구문을 찾고 있습니다. Clickonce 응용 프로그램에서 xml 응용 프로그램과 매니페스트 파일은 이제 2 진으로 인코딩 된 파일과 동일합니다. – AdamSane

관련 문제