【问题标题】:How can I run/debug a given project based on the solution configuration?如何根据解决方案配置运行/调试给定项目?
【发布时间】:2021-05-24 00:06:56
【问题描述】:
我在一个解决方案中有多个项目。主要的两个“可运行”项目是服务器和客户端。 “运行/调试”按钮旁边的下拉菜单显示“调试”和“发布”。这似乎是管理多个“项目配置”的“解决方案配置”。我正在寻找一种将这些替换为“调试客户端”、“发布客户端”、“调试服务器”和“发布服务器”的“解决方案配置”的方法。
有了这个,我希望只需选择任何配置并点击播放即可构建正确的“项目配置”并运行/调试预期的项目。
但是,我找不到任何设置来决定实际启动哪个项目。只有“构建”/“部署”。
我仍然需要手动选择要“设置为启动项目”的项目。
我可以在解决方案属性中看到我可以设置多个启动项目。这个“属性”页面绝对完美如果我能够更改左上角的“配置”,但是整个配置/平台区域显示为“N/A”灰显”。我只能在一般级别更改它,如果我将客户端和服务器都更改为“启动”,那么它们总是启动,这绝对不是我想要的。我只想根据我选择的解决方案配置开始。这不可能吗?
【问题讨论】:
标签:
visual-studio
visual-studio-2019
【解决方案1】:
我找到了一个名为SwitchStartupProject 的扩展程序,它可以实现您的目标。使用此扩展,您可以配置以 JSON 编写的解决方案启动文件。例如,我是这样写的:
{
/* Configuration File Version */
"Version": 3,
/* Create an item in the dropdown list for each project in the solution? */
"ListAllProjects": false,
"MultiProjectConfigurations": {
"ProjectA": { /* Configuration name (appears in the dropdown) */
"Projects": {
"ProjectA": {} /* Starting ProjectA */
},
"SolutionConfiguration": "ProjectAConfig", /* Activating solution configuration "ProjectAConfig" */
"SolutionPlatform": "Any CPU" /* and solution platform "Any CPU" */
},
"ProjectB": { /* Configuration name (appears in the dropdown) */
"Projects": {
"ProjectB": {} /* Starting ProjectB */
},
"SolutionConfiguration": "ProjectBConfig", /* Activating solution configuration "ProjectBConfig" */
"SolutionPlatform": "x86" /* and solution platform "x86" */
},
"netcoreapi": { /* Configuration name (appears in the dropdown) */
"Projects": {
"netcoreapi": {} /* Starting netcoreapi*/
},
"SolutionConfiguration": "Debug", /* Activating solution configuration "Debug" */
"SolutionPlatform": "Any CPU" /* and solution platform "Any CPU" */
}
}
}
结果:
您无需更改所需的配置,而是选择要启动的项目,然后这可以更改使用的配置。您甚至可以更改平台以及进行演示等。查看扩展程序的configuration 页面以了解更多信息。