System.MissingMethodException in NInject
本文关键字:NInject in MissingMethodException System | 更新日期: 2023-09-27 18:36:34
在TFS生成服务器上运行单元测试时,出现此错误:
SetUp : System.MissingMethodException : Method not found: 'Void
Ninject.ModuleLoadExtensions.Load(Ninject.IKernel, System.Reflection.Assembly[])'.
at Ninject.Extensions.Conventions.AssemblyScanner.Process(
Assembly assembly, IKernel kernel)
据我所知,这是说 NInject 的一部分找不到 Ninject 的另一部分。
问题出现在所有三个构建服务器上。
在本地,它工作正常。
所有系统(本地和远程)似乎都在使用所有Ninject组件的正确版本(以及应用程序中的所有其他组件)
有什么想法吗?
更新:哎呀,以为我在原始消息中提到了这一点:
Ninject ver 2.2.0.0
Ninject.Extensions.Conventions ver 2.2.0.5
您可能使用不同版本的 Ninject.dll 和 Nnject.Extensions.TConvention。例如 Ninject 3.0.0 和约定 2.2.0
缺少方法异常是一个部署问题。使用 Fusion 日志检查实际加载的内容。例如,一个程序集可能位于 GAC 中。
好的,我们想通了。
TFS 生成服务器喜欢将所有 DLL 放在同一个文件夹中。 如果您同时具有同名的 .Net 和 Silverlight 程序集,则会导致问题(例如 Ninject.dll)
解决方案是将 Silverlight 项目属性页上的"输出路径"(在"生成"选项卡下)从标准的"bin'Release'
"更改为类似"bin'Release'Silverlight
"的内容,以便 DLL 保持独立。