【发布时间】:2019-09-03 16:58:19
【问题描述】:
NuGet 包 Serilog.Sinks.File 发布时出错。
我正在尝试发布一个独立的 WPF .NET Core 3.0 应用程序。该应用程序构建,运行良好,发布良好,直到添加 Serilog.Sinks.File。一旦将 Serilog.Sinks.File 添加到项目中,应用程序就会构建/运行,甚至可以正确记录。但是,尝试发布时会给出此错误;
System.AggregateException:发生一个或多个错误。 ---> System.Exception:发布失败。 --- 内部异常结束 堆栈跟踪 --- 在 System.Threading.Tasks.Task.ThrowIfExceptional(布尔 includeTaskCanceledExceptions) 在 System.Threading.Tasks.Task.Wait(Int32 毫秒超时, CancellationToken 取消令牌)在 Microsoft.Publish.Framework.Model.DefaultPublishSteps.c__DisplayClass26_0.b__2() 在 System.Threading.Tasks.Task`1.InnerInvoke() 在 System.Threading.Tasks.Task.Execute() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)在 Microsoft.Publish.Framework.Model.DefaultPublishSteps.d__23.MoveNext() --- 从先前抛出异常的位置结束堆栈跟踪 --- 在 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务 任务)在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务 任务)在 Microsoft.Publish.Framework.ViewModel.ProfileSelectorViewModel.d__205.MoveNext() --->(内部异常 #0)System.Exception: 发布失败。
System.Exception:发布失败。
====================
删除 Serilog.Sinks.File 并发布应用。
即使去掉 Serilog 初始化命令,也会出现同样的错误。
【问题讨论】:
-
您是否检查了
AggregateException中的异常以查看是否提供任何线索? -
@CaioProiete 不是真的,VS 中的输出,只是说 Build: 11 succeeded, 0 failed, 0 up-to-date, 0 skipped, 然后 Publish: 0 succeeded, 1 failed, 0 skipped。输出中没有实际错误。出现一个消息框,指向带有上述错误消息的临时文件。
-
哦,遗憾的是,日志没有将 Agg 异常中的异常展平。
-
远射:您是通过
appSettings.json还是app.config配置文件日志?如果是,则构建过程可能无法检测到对文件接收器的依赖...值得快速测试...只需将此Console.WriteLine(typeof(Serilog.FileLoggerConfigurationExtensions));放在应用程序启动的某个位置,以创建静态依赖项File Sink 程序集,看看是否有帮助。 -
@CaioProiete 找到了解决方案,见下文
标签: c# wpf serilog .net-core-3.0