【发布时间】:2020-06-09 15:13:47
【问题描述】:
我的项目是一个跨平台项目。其中包含 3 个项目 2 .Net-standard 2.0 和一个带有 .Net-framework 4.6.2 的启动项目。
最新的 Autofac 版本(5.2.0)不支持 .NetFramework 4.6.2。
我遇到了错误
autofac.dll 中的 autofac.core.registration.componentnotregisteredexception'" builder.Build() 无法实例化类对象。
错误信息:
Autofac.dll 中出现“Autofac.Core.Registration.ComponentNotRegisteredException”类型的异常,但未在用户代码中处理 附加信息:请求的服务“ShipPageObjects.PageObjects.Login.LoginResolvePage”尚未注册。 为避免此异常,请注册一个组件以提供 服务,使用 IsRegistered() 检查服务注册, 或使用 ResolveOptional() 方法来解决可选依赖项。
var builder = new ContainerBuilder();
builder.RegisterModule(new ContainerConfig());
builder.RegisterInstance(testConfig).As<ITestConfig>();
builder.RegisterModule(new ShipmentmentTest(testConfig));
builder.RegisterModule(new MaterialTest(testConfig));
Container = builder.Build();
【问题讨论】:
-
你能发布整个异常堆栈跟踪吗?通常 Autofac 会为您提供导致问题的类。
-
Autofac 5.2.0 nuget 包中有一个 .NET 4.6.1 二进制文件,所以应该支持。
-
@Corv1nus 我已经发布了整个异常堆栈跟踪。
-
@Rup 正如我所看到的其他文章,这就是我尝试这种方法的原因。但是遇到错误。
-
错误信息会告诉您究竟出了什么问题以及如何修复它。我不确定您是如何得出这是一个框架兼容性问题的结论。遵循异常消息的建议,这就是它的用途。
标签: c# .net autofac .net-framework-version