在使用 dotnet core 版本的 WPF 可以将发布文件打包为一个exe文件,但是此时小伙伴发现 log4net 无法运行,因为 log4net 说找不到配置文件

这是 子铭 小伙伴问我的问题,我尝试创建一个 dotnet core 的 WPF 程序,使用下面代码创建的

dotnet new wpf -o HudidaneahaFekujarchebea

在从另一个项目复制了 log4net 的配置的时候,我发现了一个细节,在运行 log4net 默认会读取 Log.config 配置文件,而读取的文件夹是应用程序所在的文件夹,如果通过下面代码将软件发布单文件,那么因为 log4net 需要读取而配置文件找不到而不能使用

dotnet publish -r win10-x64 /p:PublishSingleFile=true 

解决方法是

  • 启动时写入配置文件
  • 重定向配置文件
  • 通过代码配置
  • 不用log4net都成

关于写日志请看 程序猿修养 日志应该如何写

dotnet core 发布只有一个 exe 的方法


本文会经常更新,请阅读原文: https://dotnet-campus.github.io//post/WPF-%E9%80%9A%E8%BF%87-dotnet-core-%E5%8F%91%E5%B8%83%E5%8D%95%E6%96%87%E4%BB%B6%E6%97%B6-log4net-%E6%97%A0%E6%B3%95%E4%BD%BF%E7%94%A8.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

知识共享许可协议 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名 lindexi (包含链接: https://dotnet-campus.github.io/ ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系