如何修复已弃用的NuGet包NLog.Config及编译失败问题
解决NLog.Config弃用及编译失败问题
1. 直接删除NLog.Config是否安全?
不行。NLog.Config被标记为弃用,是因为它的配置功能已经整合到NLog核心包中,而非整个NLog框架被弃用。你代码里还在使用NLog的日志功能,直接删除会导致项目丢失NLog核心组件引用,引发编译错误。
2. 分步解决方案
替换NuGet包
- 卸载已弃用的
NLog.Config包 - 安装最新稳定版的
NLog核心NuGet包(这个包包含了原NLog.Config的所有配置能力)
迁移NLog配置
如果之前依赖NLog.Config自带的默认配置,需要手动添加配置文件:
- 在项目根目录新建XML文件,命名为
NLog.config - 加入基础配置(可根据你的日志需求调整):
<?xml version="1.0" encoding="utf-8" ?> <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <targets> <!-- 控制台输出 --> <target name="console" xsi:type="Console" /> <!-- 文件日志输出 --> <target name="file" xsi:type="File" fileName="${basedir}/logs/${shortdate}.log" /> </targets> <rules> <logger name="*" minlevel="Info" writeTo="console,file" /> </rules> </nlog>
- 在Visual Studio中选中该文件,设置复制到输出目录为「如果较新则复制」,确保程序运行时能读取到配置
代码无需修改
你现有代码中的NLog调用完全兼容最新版NLog核心包,不需要做任何改动:
Imports NLog Private m_logger As NLog.Logger = LogManager.GetCurrentClassLogger()
以及这类日志调用:
m_logger.Error(ex, "RESULT_FAILED_OAUTH")
3. 额外提示
- 如果项目原本有自定义的NLog配置,只需把原有配置内容迁移到新的
NLog.config文件即可 - 定期更新
NLog包到最新稳定版,获取性能优化和安全修复
内容的提问来源于stack exchange,提问作者Andrew Truckle
相关产品推荐
相关产品推荐

