C# 在Windows 10通用Windows库中引用BindingFlags类型时无法加载程序集
在运行单元测试时,调用我的可移植运行库DLL中引用“System.Reflection.TypeExtensions”的任何方法都会生成FileNotFound异常,搜索“System.Reflection.TypeExtensions”。在Windows 10通用应用程序中执行相同代码时,不会发生此错误 该项目是一个C#可移植运行时库,配置为支持.net Framework 4.6和Windows Universal 10.0。测试项目配置为使用.net Framework 4.6 每当我尝试调用使用System.Reflection.BindingFlags类型的方法时,都会出现以下异常。调用开始时会发生异常(可能是在jit函数时)C# 在Windows 10通用Windows库中引用BindingFlags类型时无法加载程序集,c#,.net,portable-class-library,visual-studio-2015,C#,.net,Portable Class Library,Visual Studio 2015,在运行单元测试时,调用我的可移植运行库DLL中引用“System.Reflection.TypeExtensions”的任何方法都会生成FileNotFound异常,搜索“System.Reflection.TypeExtensions”。在Windows 10通用应用程序中执行相同代码时,不会发生此错误 该项目是一个C#可移植运行时库,配置为支持.net Framework 4.6和Windows Universal 10.0。测试项目配置为使用.net Framework 4.6 每当我尝试
添加对nuget软件包的引用:
System.Reflection
System.Reflection.Extensions
System.Reflection.Primitives
添加这些包是正确的做法。以下是您看到这种行为的原因:
BindingFlags
当前[1]在System.Reflection.TypeExtensions
中公开System.Reflection.TypeExtensions!System.Reflection.BindingFlags
System.Reflection.TypeExtensions
的引用,否则编译器无法解析该类型。单元测试项目也是如此,它必须部署所有代码才能运行mscorlib!的类型转发!System.Reflection.BindingFlags
并愉快地运行代码[1] 我之所以说现在,是因为根据客户反馈,我们希望将其移回
System.Reflection
,以及采用绑定标志的API,我看到了,丑陋的bug。很难诊断,.NETCore的依赖关系不可能再解开。解决方法是将Nuget包添加到您的项目中。我也发现了这个问题(单元测试问题?我也在运行单元测试):这当然是完全相同的问题。我不清楚您为什么不想添加Nuget包。看来这件事是在1月15日被梅利诺的承诺所破坏的,因为梅利诺移动了旗帜。只要报告错误,点击新问题按钮,让他知道。请记住,像这样的错误是很正常的,CoreFx运行速度很快,几乎没有经过测试。你是一个背上插着箭的先锋。哈哈@背上插着箭的先锋。你能解释一下这里发生了什么事吗。我在安卓领域已经有一段时间了,平台的倍增对我来说是一块新的地盘。该软件包是由核心microsoft development构建和维护的吗?这只是一种新常态,还是跨平台的图书馆只是一个任何人都害怕涉足的地方?(nuget的工作当然很好。但是,至少可以说,必须运行到nuget才能获得核心运行库的概念令人不安)!必须登录才能写一个bug,这样一个有缺陷的概念。我会等到核心变得更稳定…是的,我正在用Visual Studio单元测试进行所有的单元测试,没有第三方参与。谢谢。我将确保这将适用于VS.My library targets.NET标准1.4的发布,并且调用方是一个完整的framework 4.6.1控制台应用程序。没有涉及“预发布位”,但我仍然遇到同样的问题。很高兴看到它得到了修复。添加这个,System.Reflection.TypeExtensions,然后它就可以工作了。
System.Reflection
System.Reflection.Extensions
System.Reflection.Primitives