我有一个ASP.NET Core 3.1项目,在同一个解决方案中引用了一个.NET 4.7.2项目。它的编译没有问题,但在运行时我得到一个错误。
无法加载类型'System.Web.Configuration.WebConfigurationManager'。
我已经安装了 Microsoft.Windows.Compatibility
包,但这并没有帮助。
是我遗漏了什么,还是如果不对.NET 4.7.2项目进行重大重构,使其不使用该包,就无法工作?System.Web.Configuration.WebConfigurationManager
命名空间?
我有一个ASP.NET Core 3.1项目,在同一个解决方案中引用了一个.NET 4.7.2项目。它的编译没有问题,但在运行时我得到一个错误。
无法加载类型'System.Web.Configuration.WebConfigurationManager'。
ASP.NET Core是一个跨平台的框架,和ASP.NET Core使用不同的配置设置,详情请查看。
我想,你的.NET 4.7项目可能是一个类库,会被其他应用程序调用。
如上错误所示 System.Web.Configuration.WebConfigurationManager
不可能与.NET Core应用程序兼容。
如果可能的话,你可以尝试修改你的类库(.NET 4.7项目),将从调用者应用中获取的数据(你在web.config中配置的,或appsettings.json)传递给类库方法,而不是通过以下方式获取数据 WebConfigurationManager
类库中。
此外,你也可以通过修改和添加额外的方法来使它与ASP.NET Core配置设置一起工作,如下所示。
public class MyClassLibrary
{
private readonly IConfiguration Configuration;
public MyClassLibrary()
{
}
public MyClassLibrary(IConfiguration configuration)
{
Configuration = configuration;
}
public void MethodForNet()
{
var val = WebConfigurationManager.AppSettings["mykey"];
//code logic here
}
public void MethodForCore()
{
var val = Configuration["AppSettings:mykey"];
//code logic here
}
//other methods
}