在 Visual Studio 中通过 WSL 调试 C# 应用程序时如何显示控制台窗口?

问题描述 投票:0回答:1

我已按照此处所示的说明运行 WSL,并且我可以在 Linux 环境中的 Windows 上成功调试我的 C# 应用程序。

问题是,默认情况下,如果我通过 WSL 运行,则不会显示控制台应用程序的控制台。 VS Immediate 窗口可以正常运行,因此我可以看到应用程序的输出,但我无法使用

Console.ReadLine()

任何有关 Visual Studio 设置的帮助,或在运行时在 WSL 中分配控制台的编程方式,我们都会表示赞赏。

c# linux windows windows-subsystem-for-linux
1个回答
0
投票

您可以尝试对

OpenTelemery
包使用方法重载。
AddConsoleExporter
应该有助于在控制台窗口中显示所有日志。

以下是如何利用它的示例:

services.AddServiceTelemetry(
serviceName: serviceName,
configureTracer: providerBuilder => providerBuilder

     // Enable for local debugging
     .AddConsoleExporter()
    .AddSource(sourceName)
    .SetErrorStatusOnException(true)
    .AddAspNetCoreInstrumentation((options) =>
    {
        options.EnrichWithHttpRequest = (activity, req) => ASPNetCoreExtension.EnrichHttpRequest(activity, req);
        options.EnrichWithHttpResponse = (activity, res) => ASPNetCoreExtension.EnrichHttpResponse(activity, res);
        options.EnrichWithException = (activity, ex) => ASPNetCoreExtension.EnrichHttpException(activity, ex);
    }));

如上所示,您可以使用

AddAspNetCoreInstrumentation
方法进一步丰富您的日志。 请注意,
ASPNetCoreExtension.EnrichHttpRequest
方法来自我的自定义实现代码。

© www.soinside.com 2019 - 2024. All rights reserved.