Band SDK:调用TileManager.AddTileAsync时出现MissingManifestResourceException(

时间:2015-05-15 09:30:28

标签: microsoft-band

您好我遇到了MissingManifestResourceException的问题,我在MSDN论坛上发现了类似的帖子,建议他们在这里发布OP没有的帖子。因此我在这里重新发布了它,因为OP比我能够更加雄辩地解释问题......

Original Post

您好,

不知道这是不是正确的论坛。

我已经尝试在MS乐队上创建一个简单的测试图块,我变得疯狂。我正在使用Windows 10 10074和VS 2015 CTP进行开发。

首先,当抛出异常时,你总是会误导System.Resources.MissingManifestResourceException隐藏你的实际异常(似乎无法找到本地化的资源内容)。通过检查堆栈跟踪,您可以从顶部的第二个位置获得实际异常。

其次,当我创建一个没有布局或其他任何东西的简单图块时,一切顺利。但只要我添加一些简单的东西:

var controlsPageLayout = new PageLayout(new FilledPanel() { Rect = new PageRect(0, 0, 245, 102) });

tile.PageLayouts.Add(controlsPageLayout);

我同时获得System.Resources.MissingManifestResourceExceptionMicrosoft.Band.BandIOException。这是堆栈跟踪:

at Microsoft.Band.BandClient.DynamicPageLayoutSetLayout(Guid appId, UInt32 layoutIndex, PageLayout layout)
at Microsoft.Band.BandClient.AddTileOutsideSync(BandTile tile)
at Microsoft.Band.BandClient.<>c__DisplayClass9b.<AddTile>b__9a()
at Microsoft.Band.BandClient.RunUsingSynchronizedFirmwareUI(Action insideSync, Action afterSync)
at Microsoft.Band.BandClient.AddTile(BandTile tile, Guid applicationId, IReadOnlyList`1 installedTiles)
at Microsoft.Band.BandClient.<>c__DisplayClass6f.<<AddTileAsync>b__6c>d__71.MoveNext()

你知道这些问题的可能原因是什么吗?感谢

2 个答案:

答案 0 :(得分:1)

好的,我认为这个问题与Visual Studio 2015 RC有某种关系。我重新安装了2013 Update 4(在Windows TP 10074上),问题不再发生。

我希望这有助于其他人。

答案 1 :(得分:1)

使用VS 2015 CTP6工作得很好。现在我有了VS2015RC并得到了这个例外。

快速而肮脏的修复:只需将AddTileAsync放在try / catch周围! 我看到之后就这样做了,即使它抛出异常,我的乐队上的磁贴也是如此,当获取add命令的本地化状态(我的笔记本电脑在法国本地设置)时,异常就是这样。所以绕过异常并尝试运行.SetPagesAsync:就像魅力...... 这是我的代码:

await bandClient.TileManager.RemoveTileAsync(myTile.TileId);
try
{
    await bandClient.TileManager.AddTileAsync(myTile);
    System.Diagnostics.Debug.WriteLine("AddTileOk");
}
catch (BandIOException bandex)
{
    System.Diagnostics.Debug.WriteLine($"ex:{bandex.Message}{Environment.NewLine}InnerException : {bandex.InnerException}");
    if (bandex.Message != "Exception of type 'System.Resources.MissingManifestResourceException' was thrown.")
        throw;
}
await bandClient.TileManager.SetPagesAsync(myTile.TileId, page);

有关信息,这里是InnerException:

  

{System.Resources.MissingManifestResourceException:   类型为&#39; System.Resources.MissingManifestResourceException&#39;的异常   被扔了。在System.Resources.ResourceManager.GetString(String   名称,CultureInfo文化)   Microsoft.Band.BandResources.get_CommandStatusError()at   Microsoft.Band.BandClient.CheckStatus(CargoStatus状态,   CommandStatusHandling statusHandling)at   Microsoft.Band.BandClient.DynamicPageLayoutSetLayout(Guid appId,   UInt32 layoutIndex,PageLayout layout)}       [System.Resources.MissingManifestResourceException]:{System.Resources.MissingManifestResourceException:类型异常   &#39; System.Resources.MissingManifestResourceException&#39;被扔了。在   System.Resources.ResourceManager.GetString(String name,CultureInfo   文化)在Microsoft.Band.BandResources.get_CommandStatusError()
  在Microsoft.Band.BandClient.CheckStatus(CargoStatus状态,   CommandStatusHandling statusHandling)at   Microsoft.Band.BandClient.DynamicPageLayoutSetLayout(Guid appId,   UInt32 layoutIndex,PageLayout layout)}       数据:{System.Collections.ListDictionaryInternal}       HelpLink:null       HResult:-2146233038       InnerException:null       消息:&#34;类型的异常&#39; System.Resources.MissingManifestResourceException&#39;被扔了。&#34;       资料来源:&#34; mscorlib&#34;       StackTrace:&#34;在System.Resources.ResourceManager.GetString(String name,CultureInfo   文化)\ r \ n at   Microsoft.Band.BandResources.get_CommandStatusError()\ r \ n at   Microsoft.Band.BandClient.CheckStatus(CargoStatus状态,   CommandStatusHandling statusHandling)\ r \ n at   Microsoft.Band.BandClient.DynamicPageLayoutSetLayout(Guid appId,   UInt32 layoutIndex,PageLayout布局)

希望这有帮助!