2010-08-24 15 views
1

Je suis à la recherche d'un moyen pour que le site Web d'hébergement analyse le fichier [appname] .manifest pour extraire le nom, la version et l'icône de l'application, le cas échéant. De cette façon, je peux le mettre dans un contrôle pour un déploiement facile. Existe-t-il des appels de structure qui m'aideront à analyser le fichier manifeste?est-il un moyen d'analyser un manifeste d'application?

Les fichiers que je suis à la recherche sont [appname] .Application et/ou [appname] .manifest

Répondre

0

Vous pouvez obtenir plus de l'info que vous voulez en utilisant la System.Deployment.Application.InPlaceHostingManager classe - ne vous laissez pas berner par le nom, il est principalement pour les applications ClickOnce navigateur hébergé, mais fonctionne également pour les applications ClickOnce autonome. Une fois que vous initialisez une instance et passez l'URL du fichier .Application, vous pouvez appeler GetManifestAsync() - dans le gestionnaire d'événements pour GetManifestCompleted, vous pouvez obtenir le nom de l'application et la version:

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

L'icône est habituellement utilisée dans le manifeste d'application (.Application est le manifeste de déploiement) - manifeste de l'application est accessible en utilisant InPlaceHostingManager; Dans l'exemple ci-dessus, vous obtiendrez la valeur e.ApplicationManifest qui vous donnera un XmlReader pour jouer avec.

Probablement mieux pour étudier le schéma XML concerné (s), puis trouver l'icône en utilisant XQuery.

+0

Cela me donne plus de ce que je cherche. Merci. – AdamSane

0

System.Diagnostics.FileVersionInfo fera la plupart du levage lourd pour vous. Il va extraire des méta-données d'un fichier pour déterminer Nom du produit Version & de l'Assemblée. Quant à l'icône, qui est une autre histoire, mais au moins cela est un début pour vous:

Mise à jour:

utilisant également System.Reflection.Assembly vous pouvez appeler GetManifestResourceInfo(string), GetManifestResourceNames() et GetManifestResourceStream(string) pour accéder aux ressources d'un assemblage (pour l'icône).

+0

merci; cependant, je suis à la recherche des analyses qui analyseront les fichiers * .application et/ou * .manifest xml. Dans une application clickonce, l'application xml et les fichiers manifest sont maintenant les mêmes que ceux codés en binaire. – AdamSane