什么时候应该在WSL 2中进行调试?
对于专注于Linux的Windows .NET用户而言,WSL 2处于生产实际性和性能之间的正确位置。在Visual Studio中,您已经可以使用Remote Debugger在远程Linux环境中进行调试,也可以使用Container Tools在容器中进行调试。当生产现实是您的主要关注点时,您应该使用其中之一。当简单快速的内部循环更为重要时,WSL 2是一个不错的选择。
您不必只选择一个!您可以在同一项目中拥有Docker和WSL 2的运行配置文件,然后选择适合特定运行的配置文件。一旦部署了应用程序,就可以在出现问题时始终使用远程调试器连接到它。
WSL 2的.NET Core调试入门-预览
使用扩展程序之前,请确保安装WSL 2和您选择的发行版。安装扩展程序后,当在Visual Studio中打开ASP.NET Core Web应用程序或.NET Core控制台应用程序时,您将看到一个名为WSL 2的新启动配置文件。
选择此配置文件会将其添加到launchSettings.json文件中,如下所示:
"WSL 2": {
"commandName": "WSL2",
"launchBrowser": true,
"launchUrl": "https://localhost:5001",
"environmentVariables": {
"ASPNETCORE_URLS": "https://localhost:5001;http://localhost:5000",
"ASPNETCORE_ENVIRONMENT": "Development"
},
"distributionName": ""
}
选择新的配置文件后,该扩展程序将检查WSL 2发行版是否配置为运行.NET Core应用程序,并帮助您安装所有缺少的依赖项。一旦安装了所有依赖项,就可以在WSL 2中进行调试了。只需照常开始调试,您的应用程序现在就可以在默认的WSL 2发行版上运行。确保您正在运行Linux的一种简单方法是检查Environment.OSVersion值。
注意。仅Ubuntu和Debian被测试和支持。.NET Core支持的其他发行版也可以使用,但是需要手动安装.NET Core Runtime和Curl。
使用特定的发行版
默认情况下,WSL 2启动配置文件将使用wsl.exe中设置的默认分发。如果您希望启动配置文件以特定的发行版为目标,则无论默认设置如何,都可以更改启动配置文件。例如,如果要调试Web应用程序并想在Ubuntu 20.04上对其进行测试,则启动配置文件将如下所示:
"WSL 2": {
"commandName": "WSL2",
"launchBrowser": true,
"launchUrl": "https://localhost:5001",
"environmentVariables": {
"ASPNETCORE_URLS": "https://localhost:5001;http://localhost:5000",
"ASPNETCORE_ENVIRONMENT": "Development"
},
"distributionName": "Ubuntu-20.04"
}
定位多个分布
更进一步,如果您正在开发一个需要在多个发行版上运行的应用程序,并且想要一种快速的方法来测试每个发行版,则可能会有多个启动配置文件。例如,如果您需要在Debian,Ubuntu 18.04和Ubuntu 20.04上测试控制台应用程序,则可以使用以下启动配置文件:
"WSL 2 : Debian": {
"commandName": "WSL2",
"distributionName": "Debian"
},
"WSL 2 : Ubuntu 18.04": {
"commandName": "WSL2",
"distributionName": "Ubuntu-18.04"
},
"WSL 2 : Ubuntu 20.04": {
"commandName": "WSL2",
"distributionName": "Ubuntu-20.04"
}
使用这些启动配置文件,您可以轻松地在目标发行版之间进行切换,而无需离开舒适的Visual Studio环境:
立即尝试!
因此,如果您喜欢在Visual Studio中工作,但需要在Linux上测试您的应用程序,请立即去Visual Studio Marketplace安装扩展。请使用市场询问任何问题或反馈,并让我们知道此扩展的实用性。