Jef*_*son 5 .net c# unit-testing resx win-universal-app
我的Visual Studio 2015解决方案包含以下项目:
PCL程序集包含一个嵌入的字符串资源表(通过项目中的RESX文件)和一个允许调用者从字符串资源表中获取字符串的简单类.PCL旨在允许在.NET和UWP程序集之间共享字符串.
运行.NET单元测试库时,单元测试调用.NET程序集,该程序集从PCL程序集中获取字符串.这按预期工作.
当运行UWP单元测试应用程序时,单元测试调用UWP程序集,该程序集从PCL程序集中获取字符串.此操作失败,并显示以下异常消息:
System.Resources.MissingManifestResourceException:无法为包[guid]中的资源文件[blah]加载资源.
我尝试了这个解决方案,但调用GetForViewIndependentUse()
失败,COMException
并声明"未找到ResourceMap".
这是怎么回事?此调用链适用于.NET单元测试堆栈.我已经检查过以确保所有组件的中性语言都设置为"英语".在.NET程序集和UWP程序集之间共享字符串表的最佳方法是什么?
过去几天我处理的是"MissingManifestResourceException".我还检查了微软博客文章和关于Xamarin的MVP帖子.应用建议的解决方案后,我得到了与"未找到ResourceMap"相同的错误.
最后,我决定回到主要问题,我仔细检查了MSDN中错误"MissingManifestResourceException"的描述,它说:
如果主程序集不包含中性文化的资源,则抛出异常,并且缺少适当的附属程序集.
来源:https://msdn.microsoft.com/en-us/library/system.resources.missingmanifestresourceexception(v=vs.110).aspx
所以,我刚刚去了PCL并设立了一个中立文化(语言)
- 在解决方案资源管理器中,右键单击项目,然后单击"属性".
- 从左侧导航栏中选择"应用程序",然后单击"程序集信息".
- 在"装配信息"对话框中,从"中性语言"下拉列表中选择语言.
- 单击确定.
资料来源:https://msdn.microsoft.com/en-us/library/bb385967.aspx
问题解决了!
归档时间: |
|
查看次数: |
586 次 |
最近记录: |