2

Windows.ApplicationModel.Package.CurrentId.Name にアクセスして名前を取得できることは知っていますが、これは私のマニフェストのパッケージ名のようです。かなり長い数字と文字列。

コード内からマニフェストにあるパッケージ表示名、パブリッシャー表示名を取得するにはどうすればよいですか。私はむしろこれをダイナミックにしたいと思います。

助言がありますか?

4

1 に答える 1

2

マニフェストは 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;
}
于 2013-04-28T08:42:19.957 に答える