包中.Appxmanifest——任何方法都可以在代码中实现其中的一部分

本文关键字:实现 一部分 代码 Appxmanifest 任何 方法 都可以 包中 | 更新日期: 2023-09-27 18:11:04

我知道你可以到达Windows.ApplicationModel.Package.Current并使用Id。名称来获取名称,但这似乎是我的清单中的包名称。一串相当长的数字和字母。

如何从代码内部获得清单中的包显示名称,发布服务器显示名称。我宁愿让它动态。

有什么建议吗?

包中.Appxmanifest——任何方法都可以在代码中实现其中的一部分

清单是一个xml文件,所以你可以用Linq to xml查询它:

using System.Xml.Linq;
using Windows.ApplicationModel;
using Windows.Storage;
private async void GetInfo(object sender, RoutedEventArgs e)
{
    StorageFile file = await Package.Current.InstalledLocation.GetFileAsync("AppxManifest.xml");
    string manifestXml = await FileIO.ReadTextAsync(file);
    XDocument doc = XDocument.Parse(manifestXml);
    XNamespace packageNamespace = "http://schemas.microsoft.com/appx/2010/manifest";
    var displayName = (from name in doc.Descendants(packageNamespace + "DisplayName")
                       select name.Value).First();
    var publisherDsplName = (from publisher in doc.Descendants(packageNamespace + "PublisherDisplayName")
                             select publisher.Value).First();
    string output = "DisplayName: " + displayName + ", PublisherDisplayName: " + publisherDsplName;
    txtBlock.Text = output;
}