cha*_*a k 6 c# exception asp.net-core
在 .NETCore 中,在Program.cs文件中运行应用程序时CreateWebHostBuilder(args).Build().Run();
我收到异常
“System.MethodAccessException:'尝试通过方法'Microsoft.Extensions.Logging.Configuration.LoggerProviderConfigurationFactory.GetConfiguration(System.Type)'访问方法'Microsoft.Extensions.Logging.ProviderAliasUtilities.GetAlias(System.Type)'失败。'”
在方法
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>();
}
Run Code Online (Sandbox Code Playgroud)
如何解决这个问题。我尝试通过卸载和安装 Microsoft.AspNetCore 但没有用,请查看我的依赖项的屏幕截图
除了 Microsoft.Extension.Logging 之外,所有版本的依赖项都相同。版本差异有什么问题吗。有人可以帮我解决这个问题吗?
异常表明问题存在于“Microsoft.Extensions.Logging.Configuration.LoggerProviderConfigurationFactory”(包含在 Microsoft.Extensions.Logging.Configuration 程序集中)。
正如微软在这里所说: https: //learn.microsoft.com/en-us/dotnet/api/system.methodaccessexception ?redirectedfrom=MSDN&view=net-5.0
在以下情况下会引发 MethodAccessException 异常:
基本上,您引用了 Microsoft.Extensions.Logging '3.1.6',但又引用了 Microsoft.Extensions.Configuration.Logging 版本'2.2.0',并且该程序集肯定是在 Microsoft.Extensions.Logging '3.1 之前编译的.6'
所有这些都可以通过在项目中修改/添加显式包引用来解决:
您的应用程序正在使用 dot net core 版本 2.2。包依赖项中的版本不匹配会导致此问题。您可以在包管理器控制台中使用以下命令行重新安装正确的版本吗?
Install-Package Microsoft.Extensions.Logging -Version 2.2.0
Run Code Online (Sandbox Code Playgroud)
如果您使用.net core cli,请使用以下命令
dotnet add package Microsoft.Extensions.Logging --version 2.2.0
Run Code Online (Sandbox Code Playgroud)
或者直接编辑 csproj 文件中的包引用,找到以下行并替换版本号,然后恢复包。
<PackageReference Include="Microsoft.Extensions.Logging" Version="2.2.0" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5793 次 |
| 最近记录: |