2010-08-24 37 views
1

我正在寻找一种方法让托管网站解析出[appname] .manifest文件,以提取应用程序名称,版本和图标(如果可用)。通过这种方式,我可以将它放入一个易于部署的控件中。有没有任何框架调用可以帮助我解析清单文件?有没有办法解析应用程序清单?

我要找的文件是[APPNAME]。应用和/或[APPNAME] .manifest的

回答

0

你可以得到最要使用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是部署清单) - 可以使用​​访问应用程序清单;在上面的例子中,你会得到e.ApplicationManifest的值,这会给你一个XmlReader玩。

可能最好研究相关的XML模式,然后使用XQuery查找图标。

+0

这给了我最需要的东西。谢谢。 – AdamSane 2010-11-30 15:10:16

0

System.Diagnostics.FileVersionInfo会做最繁重的工作适合你。它会从文件中提取元数据以确定程序集的产品名称&版本。至于该图标,这是一个不同的故事,但至少这是给你一个开始:

更新:

而且使用System.Reflection.Assembly你可以打电话GetManifestResourceInfo(string)GetManifestResourceNames()GetManifestResourceStream(string)访问组件的资源(为图标)。

+0

谢谢你;然而,我正在寻找将解析* .application和/或* .manifest xml文件的解析。在clickonce应用程序中,xml应用程序和清单文件现在与二进制编码的文件相同。 – AdamSane 2010-08-24 00:13:25

相关问题