gpt4 book ai didi

c# - 从 UWP 调用的 PCL 汇编代码中的 MissingManifestResourceException

转载 作者:太空狗 更新时间:2023-10-29 22:57:37 28 4
gpt4 key购买 nike

我的 Visual Studio 2015 解决方案有以下项目:

  • .NET 程序集
  • UWP 程序集
  • PCL 组装
  • .NET 单元测试库
  • UWP 单元测试应用

PCL 程序集包含一个嵌入式字符串资源表(通过项目中的一个 RESX 文件)和一个允许调用者从字符串资源表中获取字符串的简单类。 PCL 旨在允许在 .NET 和 UWP 程序集之间共享字符串。

当 .NET 单元测试库运行时,单元测试调用 .NET 程序集,它从 PCL 程序集中获取字符串。这按预期工作。

当 UWP 单元测试应用运行时,单元测试调用 UWP 程序集,它从 PCL 程序集中获取字符串。这将失败并显示以下异常消息:

System.Resources.MissingManifestResourceException: Unable to load resources for resource file [blah] in package [guid].

我试过了 this solution ,但是对 GetForViewIndependentUse() 的调用失败并出现 COMException,指出“ResourceMap Not Found”。

这是怎么回事?此调用链适用于 .NET 单元测试堆栈。我已检查以确保所有程序集的中性语言都设置为“英语”。在 .NET 程序集和 UWP 程序集之间共享字符串表的最佳方式是什么?

最佳答案

过去几天我一直在处理同样的“MissingManifestResourceException”。我还检查了 Microsoft Blog Post还有这个MVP Post关于 Xamarin。应用建议的解决方案后,我遇到了与您“未找到 ResourceMap”相同的错误。

最后,我决定回到主要问题,仔细检查了 MSDN 中错误“MissingManifestResourceException”的描述,它说:

The exception that is thrown if the main assembly does not contain the resources for the neutral culture, and an appropriate satellite assembly is missing.

来源:https://msdn.microsoft.com/en-us/library/system.resources.missingmanifestresourceexception(v=vs.110).aspx

所以,我只是去了 PCL 并设置了一个中性文化(语言)

  1. In Solution Explorer, right-click your project, and then Click Properties.
  2. From the left navigation bar select Application, and then click Assembly Information.
  3. In the Assembly Information dialog box, select the language from the Neutral Language drop-down list.
  4. Click OK.

来源:https://msdn.microsoft.com/en-us/library/bb385967.aspx

问题解决了!

关于c# - 从 UWP 调用的 PCL 汇编代码中的 MissingManifestResourceException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37258741/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com