Есть ли способ разобрать манифест приложения? - PullRequest
1 голос
/ 24 августа 2010

Я ищу способ, чтобы веб-сайт хостинга проанализировал файл [appname] .manifest, чтобы вытащить имя приложения, версию и значок, если они доступны. Таким образом, я могу поместить его в элемент управления для легкого развертывания. Существуют ли какие-либо вызовы фреймворка, которые помогут мне разобрать файл манифеста?

Я ищу файлы [appname] .application и / или [appname] .manifest

Ответы [ 2 ]

0 голосов
/ 24 августа 2010

Вы можете получить большую часть информации, которую вы хотите, используя класс System.Deployment.Application.InPlaceHostingManager - не дайте себя обмануть по имени, это в первую очередь для приложений ClickOnce, размещенных в браузере, но также работает для автономного ClickOnceПрограммы.После инициализации экземпляра и передачи ему 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 - манифест развертывания) - доступ к манифесту приложения можно получить с помощью InPlaceHostingManager;в приведенном выше примере вы получите значение из e.ApplicationManifest, которое даст вам XmlReader для игры.

Вероятно, лучше всего изучить соответствующие схемы XML, а затем найти значок, используяXQuery.

0 голосов
/ 24 августа 2010

System.Diagnostics.FileVersionInfo сделает большую часть тяжелой работы за вас.Он извлечет метаданные из файла, чтобы определить название и версию продукта сборки.Что касается Icon, это другая история, но, по крайней мере, это начало для вас:

Обновление:

Также используется System.Reflection.Assembly Вы можете вызвать GetManifestResourceInfo(string), GetManifestResourceNames() и GetManifestResourceStream(string) для доступа к ресурсам сборки (для иконки).

...