C# 将nlog添加到.net core 3.0
将nlog添加到.net core 3.0应用程序会导致 “IServiceCollection”不包含的定义 “ConfigureLoggerService”且没有可访问的扩展方法 “ConfigureLoggerService”接受类型为的第一个参数 如果缺少using指令,则无法找到“IServiceCollection” 还是程序集引用 为了努吉,我有C# 将nlog添加到.net core 3.0,c#,asp.net-core-mvc,nuget,nlog,C#,Asp.net Core Mvc,Nuget,Nlog,将nlog添加到.net core 3.0应用程序会导致 “IServiceCollection”不包含的定义 “ConfigureLoggerService”且没有可访问的扩展方法 “ConfigureLoggerService”接受类型为的第一个参数 如果缺少using指令,则无法找到“IServiceCollection” 还是程序集引用 为了努吉,我有 NLog.Extensions.Logging v1.6.1 NLog.Web.AspNetCore v4.9.0 在startup.
NLog.Extensions.Logging v1.6.1
NLog.Web.AspNetCore v4.9.0
在startup.cs中
public Startup(IConfiguration config)
{
LogManager.LoadConfiguration(String.Concat(Directory.GetCurrentDirectory(), "/nlog.config"));
Configuration = config;
}
public void ConfigureServices(IServiceCollection services)
{
services.AddAuthentication(IISDefaults.AuthenticationScheme);
services.AddMvc();
services.AddTransient<ICwopaAgencyFileRepository, CwopaAgencyFileRepository>();
services.AddTransient<ICurrentUserRepository, CurrentUserRepository>();
services.AddTransient<IUserRepository, UserRepository>();
services.AddTransient<IRevenueReceivedRepository, RevenueReceivedRepository>();
services.AddTransient<ILesseeRepository, LesseeRepository>();
services.AddTransient<ITractLesseeJunctionRepository, TractLesseeJunctionRepository>();
services.AddTransient<IPadRepository, PadRepository>();
services.AddTransient<IWellRepository, WellRepository>();
services.AddTransient<IWellOperarationRepository, WellOperationRepository>();
services.AddTransient<IRoyaltyRepository, RoyaltyRepository>();
services.AddTransient<IRoyaltyAdjustmentCardViewModelRepository, RoyaltyAdjustmentCardViewModelRepository>();
services.AddSingleton<ILoggerManager, LoggerService>();
string conString = Configuration["ConnectionStrings:DefaultConnection"];
services.AddDbContext<DataContext>(options =>
options.UseSqlServer(conString));
services.ConfigureLoggerService();
services.AddMvc(option => option.EnableEndpointRouting = false);
services.AddMemoryCache();
services.AddSession();
}
这是我的csproj文件
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup Label="Globals">
<SccProjectName>SAK</SccProjectName>
<SccProvider>SAK</SccProvider>
<SccAuxPath>SAK</SccAuxPath>
<SccLocalPath>SAK</SccLocalPath>
</PropertyGroup>
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.0.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="3.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.0.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="3.0.0" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.0.0" />
<PackageReference Include="NLog" Version="4.6.8" />
<PackageReference Include="NLog.Extensions.Logging" Version="1.6.1" />
<PackageReference Include="NLog.Web.AspNetCore" Version="4.9.0" />
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" />
</ItemGroup>
<ItemGroup>
<Folder Include="Migrations\" />
</ItemGroup>
</Project>
如果您遵循这一点,请不要忘记添加此方法扩展
public static void ConfigureLoggerService(this IServiceCollection services)
{
services.AddSingleton<ILoggerManager, LoggerManager>();
}
另外,您可以考虑删除它,因为您正在向接口ILoggerManager注册此服务LoggerService。如果您遵循此操作,请不要忘记添加此方法扩展
public static void ConfigureLoggerService(this IServiceCollection services)
{
services.AddSingleton<ILoggerManager, LoggerManager>();
}
另外,您可以考虑删除它,因为您正在向接口ILogerManager注册此服务LoggerService。是否包含正确的名称空间?是否有主NLog包?它是NLog.Extensions.Logging的一部分,但他们的说明是关于NLog包的。请共享您的csproj文件刚安装了它,但它没有帮助我包括我的csproj文件配置LoggerService不是NLog提供的方法。认为你使用的是一些破损的教程。试试看这里:您是否包含了正确的名称空间?是否有一个主NLog包?它是NLog.Extensions.Logging的一部分,但他们的说明是关于NLog包的。请共享您的csproj文件刚安装了它,但它没有帮助我包括我的csproj文件配置LoggerService不是NLog提供的方法。认为你使用的是一些破损的教程。改为试试看这里:我删除了it服务。ConfigureLoggerServices,它记录得很好。谢谢。我删除了it services.ConfigureLoggerServices,它记录的很好。谢谢