如何在 VS Code 中指定启动项目?
背景:
在 Visual Studio 中,我右键单击解决方案资源管理器中的一个项目并将其设置为启动项。
然而,我不清楚如何在 VS Code 中完成此操作。
注意:
我最近在 VS Code 的目录中添加了一个 WebAPI 项目。
如何在 VS Code 中指定启动项目?
背景:
在 Visual Studio 中,我右键单击解决方案资源管理器中的一个项目并将其设置为启动项。
然而,我不清楚如何在 VS Code 中完成此操作。
注意:
我最近在 VS Code 的目录中添加了一个 WebAPI 项目。
也许这个问题值得一个更好的回答。所以让我解释一下,在 Visual Studio Code 中,您必须在 launch.json 和 tasks.json 文件中设置启动项目。
以下是一个小的详细介绍:
选择一个根项目文件夹(例如:D:/anypath/myrootfolder)
在根文件夹中创建两个项目文件夹
2.1 D:/anypath/myrootfolder/project1
2.2 D:/anypath/myrootfolder/project2
使用 cmd 创建两个控制台应用程序(我使用 .netcore 2.0)
3.1 使用 cmd 进入 project1 和 project2 文件夹(命令:cd -文件夹名-)
3.2 对于这两个文件夹中的每一个,请执行命令:dotnet new console
使用 Visual Studio Code 打开根项目文件夹
将以下的 launch.json 和 tasks.json 添加到 .vscode 文件夹中(通常在 VS Code 中单击调试按钮后将生成 .vscode 文件夹)
了解更多信息,请访问:https://code.visualstudio.com/docs/editor/debugging
示例launch.json文件:
{
"version": "0.2.0",
"configurations": [
{
"name": ".NET Core Launch Project1",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceRoot}/project1/bin/Debug/netcoreapp2.0/project1.dll",
"args": [],
"cwd": "${workspaceRoot}/project1",
"stopAtEntry": false,
"console": "internalConsole"
},
{
"name": ".NET Core Launch Project2",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceRoot}/project2/bin/Debug/netcoreapp2.0/project2.dll",
"args": [],
"cwd": "${workspaceRoot}/project2",
"stopAtEntry": false,
"console": "internalConsole"
}
]
}
示例 tasks.json 文件:
{
"version": "0.1.0",
"command": "dotnet",
"isShellCommand": true,
"args": [],
"tasks": [
{
"taskName": "build",
"args": [
"${workspaceRoot}/project1/project1.csproj"
],
"isBuildCommand": true,
"problemMatcher": "$msCompile"
},
{
"taskName": "build",
"args": [
"${workspaceRoot}/project2/project2.csproj"
],
"isBuildCommand": true,
"problemMatcher": "$msCompile"
}
]
}
别忘了我使用的是 .netcore 2.0。如果你使用另一个目标框架,当然需要自定义上述示例文件。
最终,在播放(调试)按钮的右侧,您现在应该看到两个项目:
.NET Core Launch Project1 和
.NET Core Launch Project2
这对我和我的目的很有效...
Visual Studio Code
dotnet run
,假设项目已经正确设置,它将构建并运行你的 .NET/C#
项目,这应该是你提出的问题