2011-07-30 33 views
3

有几个启动器和选择器需要contentIdentifier,并且默认为当前应用程序的contentIdentifier。有没有办法在运行时用C#查找应用程序的contentIdentifier?如何在C#中为Windows Phone7应用程序找到应用程序contentIdentifier?

MarketplaceDetailTask marketplaceDetailTask = new MarketplaceDetailTask(); 
marketplaceDetailTask.ContentIdentifier 

我想知道应用程序是已签名和发布的版本,或者它只是一个正在运行的DEV构建版本。 contentIdentifier被设置为应用程序GUID,如果它是发布的版本。

回答

3

如果您正在调用Marketplace ...任务以查看详细信息或查看当前正在运行的应用程序,则无需指定您的应用程序GUID。

如果您将ContentIdentifier留空,操作系统会为您查找您的应用程序GUID,这些调用将按预期工作。

如果您在测试中调用这些API,您将跳出市场,但会出现类似“无法立即获取此信息”的消息框错误。

因此,对于这种情况,您不需要知道您是否在开发手机上。

如果你仍然需要知道实际的GUID,我敢肯定你可以在XML的appId属性中的手机上的WMAppManifest.xml中找到它。

+0

是的,我知道是这样。 MarketplaceDetailTask​​只是我正在寻找的数据(GUID)的一个例子。我想知道如何找到当前的应用程序contentIdentifier/GUID。 –

+0

好的,我已经更新了答案 - 您可以搜索应用程序清单,该清单将发布一次“官方”GUID。 –

+0

C#中是否有API访问AppManifest? –

1

如果您确实需要这样做,您可以从清单中读取它。
coding 4 fun toolkit已经实施了这个,并有一个很好的解释在http://www.windowsphonegeek.com/articles/Getting-data-out-of-WP7-WMAppManifest-is-easy-with-Coding4Fun-PhoneHelper

+0

Matt,你知道吗,一旦应用程序通过市场部署,这是否会正确读取AppId?我知道GUID在提交/批准过程中发生了变化 – ZombieSheep

+0

@ ZombieSheep是的,WMAppManifest的全部内容都被重写为认证过程的一部分。它是重写的,它将在xap中,然后安装在用户设备上。这是将被阅读的安装的。 –

+0

谢谢马特 - 我认为会是这样,但想检查。我准备提交一个测试版应用程序来进行仔细检查,但现在我不需要那么做。 :) – ZombieSheep

相关问题