visual-studio - 如何根据解决方案配置运行/调试给定项目?

标签 visual-studio visual-studio-2019

我的解决方案中有多个项目。主要的两个“可运行”项目是服务器和客户端。 “运行/调试”按钮旁边的下拉列表显示“调试”和“发布”。这似乎是管理多个“项目配置”的“解决方案配置”。我正在寻找一种方法,用“调试客户端”、“发布客户端”、“调试服务器”和“发布服务器”的“解决方案配置”替换它们。 有了这个,我希望只需选择任何配置并点击播放即可构建正确的“项目配置”运行/调试预期的项目。 但是,我找不到任何设置来决定实际启动哪个项目。仅“构建”/“部署”。 我仍然需要手动选择哪个项目“设置为启动项目”。

我可以在解决方案属性中看到我可以设置多个启动项目。如果我能够更改左上角的“配置”,这个“属性”页面将是绝对完美的,但是整个配置/平台区域呈灰色显示“N/A” ”。我只能在一般级别上更改它,如果我将客户端和服务器都更改为“启动”,那么它们总是启动,这绝对不是我想要的。我只想根据我选择的解决方案配置启动一个。这不可能吗?

最佳答案

我找到了一个名为 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"  */
    }

  }
}

结果:

Startup switching

您无需更改所需的配置,而是选择要启动的项目,这反过来又可以更改所使用的配置。您甚至可以更改平台以及演示等。查看configuration扩展页面以了解更多信息。

关于visual-studio - 如何根据解决方案配置运行/调试给定项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67660316/

相关文章:

c# - 调试从 csrun.exe 开始的 Azure Web 角色

c++ - CMake 找不到生成的 Visual Studio 15 2017 实例,但可以与 Visual Studio 16 2019 一起正常工作

c# - 使用 new(...) 时哪些情况是无争议的?

xamarin.forms - YouTube视频无法以Xamarin格式播放Webview

c# - 如何删除 WinForms DataGrid 中自动生成的空列?

visual-studio - 'Microsoft.AspNetCore.Razor.Tools' 对于 .net core 3.1 是否已过时?那么该使用哪个包呢?

visual-studio - 当 cmdlet 提示输入信息时,如何防止包管理器控制台挂起?

visual-studio - 用于放置 using 指令的 Visual Studio 或 Resharper 功能

c# - ReSharper 间歇性地显示有效 Razor 代码的红色错误

c# - 防止 ASP.Net 项目将 {assembly}.dll.config 复制到 bin 文件夹