小编McC*_*int的帖子

在 .net5 中部署为单个文件,log4net 为配置文件抛出异常

尝试使用 log4net 作为单个文件部署用 .Net 5 编写的控制台应用程序。运行部署的应用程序抛出异常。

重现步骤

  • dotnet new console --name TestConsole --language C#(确保 .net 5.0)
  • 安装包 log4net
  • 程序.cs
static void Main(string[] args)
{
log4net.Config.XmlConfigurator.Configure(new FileInfo("log.config"));
var logger = log4net.LogManager.GetLogger("TestLogger");
logger.Info("Hello World!");
}
Run Code Online (Sandbox Code Playgroud)
  • log.config(始终复制)
<?xml version="1.0" encoding="utf-8" ?>
<log4net>
  <logger name="TestLogger">
    <level value="ALL" />
    <appender-ref ref="console" />
  </logger>
  <appender name="console" type="log4net.Appender.ConsoleAppender">
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%level - %message%newline" />
    </layout>
  </appender>
</log4net>
Run Code Online (Sandbox Code Playgroud)
  • 发布(没有单个文件)= 有效(运行控制台应用程序时)

dotnet publish -o .\Publish --self-contained true -r win-x64

  • 发布(没有单个文件)= 抛出异常(运行控制台应用程序时)

dotnet publish -o .\Publish --self-contained true -r …

c# deployment log4net single-file .net-5

7
推荐指数
1
解决办法
1681
查看次数

标签 统计

.net-5 ×1

c# ×1

deployment ×1

log4net ×1

single-file ×1