如何获取Windows应用商店应用的本地化显示名称

时间:2016-07-28 10:26:46

标签: c# .net visual-c++ desktop-application

我正在解析AppxManifest.xml并获取显示名称。这包含了类似的东西 ms-resource:ApplicationTitleWithBranding,ms-resource:AppTitleWithBranding,
MS-资源:AppStoreName。

当我使用SHLoadIndirectString函数使用此显示名称(格式为@ {PRIFilepath?resource})时,我没有获得本地化的显示名称。它什么都不返回。

但是我得到了一些包含显示名称类似于ms-resource:/// Resources / AppStoreName的应用程序的正确响应。

是否有解决方法来获取本地化的显示名称?

我需要这个在windows8.1和windows10上工作。这是一个桌面应用程序。

2 个答案:

答案 0 :(得分:3)

我刚刚通过' ms-resource:AppTitleWithBranding'与pri文件位置一起使用该函数。这就是我没有获得本地化名称的原因。

我们不应该以这种格式发送资源:ms-resource:AppTitleWithBranding。以下面的格式修改这个东西。

资源应采用以下格式:
ms-resource://Package.Id.Name/resources/AppTitleWithBranding

如果AppxManifest.xml已经包含上述格式,那么就按原样传递。

最终格式应为@ {PRIFilepath?resource}

答案 1 :(得分:1)

我知道ms-resource:的{​​{1}} URI转换更多:

@{PRIFilepath?resource}

注意:请注意,WinRT数据库和ms-resource:///xxx => ms-resource://<PRI-file package name>/xxx ms-resource://xxx ms-resource:/xxx => ms-resource://<PRI-file package name>/xxx ms-resource:xxx => ms-resource://<PRI-file package name>/Resources/xxx ms-resource:xxx/yyy => ms-resource://<PRI-file package name>/xxx/yyy ms-resource:xxx/yyy => ms-resource://<PRI-file package name>/Resources/xxx/yyy 的包名称可能与AppxManifest.xml的包名称不同。