![](/img/trans.png)
[英]The type initializer for 'Microsoft.PointOfService.Management.Explorer' threw an exception. C# printing POS
[英]The type initializer for 'Microsoft.AspNetCore.Mvc.MvcCoreLoggerExtensions' threw an exception.'
我正在制作一个 .NET Core 应用程序,我想启动一个应用程序,但它在这行代码中说:
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
endpoints.MapRazorPages();
});
//...
它说这个错误:
System.TypeInitializationException: 'Microsoft.AspNetCore.Mvc.MvcCoreLoggerExtensions' 的类型初始值设定项引发异常。
这是新事物,我以前在启动应用程序时从未见过。 我该如何解决?
内部异常是:
方法未找到:'System.Action`4<Microsoft.Extensions.Logging.ILogger,!!0,!!1,System.Exception> Microsoft.Extensions.Logging.LoggerMessage.Define(Microsoft.Extensions.Logging.LogLevel, Microsoft .Extensions.Logging.EventId, System.String, Boolean)'。
主文件
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}
.NET Core 6.0 是最新版本
身份包含在应用程序中。
好吧,当我尝试添加包 Microsoft.Extensions.Logging 时,它说 .NET Core 6.0 是不受支持的版本。
我从 VS 2022 Preview 和 .NET CORE 6 Preview 转移到 VS 2019 和 .NET Core 5,现在一切正常。
所以这是新预览版本之间的冲突(或者可能是新的微软错误?):D。
我遇到了同样的问题,但没有从 .NET CORE 6 Preview 切换的选项。
这是我的 csproj:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<Description>Application description goes here</Description>
<!-- NuGet Version Number (no pre-release identifiers)-->
<VersionPrefix>1.0.0</VersionPrefix>
<Authors>Your name here</Authors>
<TargetFramework>net6.0</TargetFramework>
<PackageProjectUrl>--redacted--</PackageProjectUrl>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<!-- Should be major.minor.0.0-->
<AssemblyVersion>1.0.0.0</AssemblyVersion>
<!-- Should be major.minor.version.0-->
<FileVersion>1.0.0.0</FileVersion>
<TypeScriptToolsVersion>3.3</TypeScriptToolsVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="AutoMapper" Version="10.1.1" />
<PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="8.1.1" />
<PackageReference Include="BuildBundlerMinifier" Version="3.2.449" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="6.0.0-preview.7.21378.6" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.0-preview.7.21378.4" />
<PackageReference Include="Microsoft.jQuery.Unobtrusive.Ajax" Version="3.2.6" />
<PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="2.2.0" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="6.0.0-preview.7.21413.1" />
<PackageReference Include="Microsoft.Web.LibraryManager.Build" Version="2.1.113" />
</ItemGroup>
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.2" />
</ItemGroup>
<ItemGroup>
<Content Update="appsettings.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<Folder Include="wwwroot\lib\" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\MyProject.Data\\MyProject.Data.csproj" />
<ProjectReference Include="..\\MyProject.Services\\MyProject.Services.csproj" />
</ItemGroup>
</Project>
我遇到了同样的问题。 为了实验,我创建了一个新项目,并在其中添加了最新版本的 Microsoft.Extensions.Logging(目前为 6.0.0-preview.7.21377.19)。 该项目因与您相同的错误而崩溃。 问题在于 LoggerMessage.Define 中没有四参数重载。 将软件包降级到 6.0.0-preview.6.21352.12 版对我有帮助。
当我尝试将 Blazor WASM Asp.net 托管项目从 5.0 升级到 6.0.0 时出现完全相同的错误。 我正在使用 Serilog,但不确定这是否是一个因素。
我对 .net 6 和 5.0.12 的 Microsoft.AspCore 库都没有问题。 如果我更新到 6.0.0 我有这个问题。 我继续开发,并在尝试集成 Auth0 时遇到了同样的问题。 我解决此异常的唯一解决方案是将整个应用程序降级到 .net 5.0。 库在 5.0.12 保持不变。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.