![](/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.