我在 Visual Studio 2022 中创建了一个控制台应用程序,只有两行 WriteLine 和 ReadLine。在 Windows 上调试时,会打开一个控制台,显示输出并等待输入。但是,如果我将其切换到 WSL 调试,我会在“输出”窗口中获得输出,但我找不到任何方法将任何数据输入到程序的标准输入中,从而卡在读取行中。有办法做到这一点吗?也许让 Visual Studio 打开控制台窗口,而不是像 Windows 应用程序那样使用 Visual Studio 中的输出窗口?
不幸的是,WSL 尚未提供读取 VS2022 上击键的控制台。我能找到的更好的方法是在输出之前使用默认的 WSL
launchSettings.json
进行调试,以发现一些错误并在输出之后创建一个新的调试设置。问题是需要手动将运行的控制台应用程序附加到 VS2022 调试器。但至少是一个解决方法。
{
"profiles": {
"ConsoleApp": {
"commandName": "Project"
},
"WSL2": {
"commandName": "Executable",
"executablePath": "wsl",
"commandLineArgs": "dotnet ConsoleApp.dll [commandLineArgs]"
},
"WSL": {
"commandName": "WSL2",
"distributionName": ""
}
}
}
我也遇到过同样的问题。当您通过启动配置文件在 WSL 上启动应用程序时,VS 实际上只需在 WSL 上运行 dotnet run 即可启动您的应用程序。只需启动应用程序,然后在 WSL 上执行 ps ax,您将看到以下命令的进程:/usr/bin/dotnet /mnt/c/
最后,我做了下一步: