我有一个ASP.NET Core3.1项目,它引用同一个解决方案中的.NET 4.7.2项目。它编译时没有问题,但在运行时我得到了一个错误:
无法加载'System.Web.Configuration.WebConfigurationManager'.类型的
我已经在Microsoft.Windows.Compatibility核心项目中安装了ASP.NET包,但这并没有帮助。
如果不对.NET 4.7.2项目进行重大重构以避免使用System.Web.Configuration.WebConfigurationManager命名空间,我是否遗漏了一些东西?
发布于 2020-04-14 07:34:34
我有一个ASP.NET Core3.1项目,它引用同一个解决方案中的.NET 4.7.2项目。它编译时没有问题,但在运行时我得到了一个错误:
无法加载类型的'System.Web.Configuration.WebConfigurationManager‘
ASP.NET Core是一个跨平台的框架,ASP.NET Core使用不同的配置设置,有关更多信息,请参见:
我认为您的.NET 4.7项目可能是一个类库,并且会被其他应用程序调用。
如上所述,错误指示System.Web.Configuration.WebConfigurationManager无法与.NET核心应用程序兼容。
如果可能的话,您可以尝试修改类库(.NET 4.7项目),将检索到的数据(您在web.config或appsettings.json中配置的数据)从调用程序传递到类库方法,而不是通过类库中的WebConfigurationManager检索数据。
此外,您还可以修改和添加其他方法,使其使用ASP.NET核心配置设置,如下所示。
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
}https://stackoverflow.com/questions/61194737
复制相似问题