0

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

原帖

你好,

不知道是不是合适的论坛。

我试过在 MS Band 上创建一个简单的测试图块,我快疯了。我正在使用 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);

我得到 aSystem.Resources.MissingManifestResourceException和 a Microsoft.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()

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

4

2 回答 2

1

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

我希望这对其他人有帮助。

于 2015-05-15T14:09:26.810 回答
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:引发了“System.Resources.MissingManifestResourceException”类型的异常。在 System.Resources.ResourceManager.GetString(字符串名称,CultureInfo 文化) 在 Microsoft.Band.BandResources.get_CommandStatusError() 在 Microsoft.Band.BandClient.CheckStatus(CargoStatus 状态,CommandStatusHandling statusHandling) 在 Microsoft.Band.BandClient.DynamicPageLayoutSetLayout(Guid appId,UInt32 layoutIndex,PageLayout 布局)} [System.Resources.MissingManifestResourceException]:{System.Resources.MissingManifestResourceException:引发了“System.Resources.MissingManifestResourceException”类型的异常。在 Microsoft.Band.BandResources 的 System.Resources.ResourceManager.GetString(字符串名称,CultureInfo 文化)。
在 Microsoft.Band.BandClient.CheckStatus(CargoStatus status, CommandStatusHandling statusHandling) 在 Microsoft.Band.BandClient.DynamicPageLayoutSetLayout(Guid appId, UInt32 layoutIndex, PageLayout layout)} Data: {System.Collections.ListDictionaryInternal} HelpLink: null HResult: -2146233038 InnerException:null 消息:“引发了‘System.Resources.MissingManifestResourceException’类型的异常。” 来源:“mscorlib”StackTrace:“在 System.Resources.ResourceManager.GetString(字符串名称,CultureInfo 文化)\r\n 在 Microsoft.Band.BandResources.get_CommandStatusError()\r\n 在 Microsoft.Band.BandClient.CheckStatus( CargoStatus 状态,CommandStatusHandling statusHandling)\r\n 在 Microsoft.Band.BandClient.DynamicPageLayoutSetLayout(Guid appId,

希望这可以帮助!

于 2015-05-19T06:18:46.000 回答