You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为多目标项目的.NET 9.0仅配置Windows和WSL2启动配置?

解决方案

你可以通过两种方式实现仅为.NET 9.0目标保留两个启动配置,同时让.NET Framework 4.7.2目标只显示合适的Windows配置:

方法1:在launchSettings.json中添加条件判断

直接修改项目的Properties/launchSettings.json,为每个配置添加condition属性,基于目标框架过滤显示:

{
  "profiles": {
    "Windows (.NET 9)": {
      "commandName": "Project",
      "condition": "'$(TargetFramework)' == 'net9.0'"
    },
    "WSL2 (.NET 9)": {
      "commandName": "WSL2",
      "distributionName": "",
      "condition": "'$(TargetFramework)' == 'net9.0'"
    },
    "Windows (.NET Framework)": {
      "commandName": "Project",
      "condition": "'$(TargetFramework)' == 'net472'"
    }
  }
}

切换目标框架时,Visual Studio只会显示当前框架对应的配置:

  • 选择net9.0时,显示Windows (.NET 9)和WSL2 (.NET 9)
  • 选择net472时,只显示Windows (.NET Framework)

方法2:为不同目标框架指定独立的启动配置文件

在项目的.csproj文件中添加条件属性,让不同框架加载不同的launchSettings文件:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFrameworks>net9.0;net472</TargetFrameworks>
  </PropertyGroup>

  <!-- 为.NET 9指定专属启动配置 -->
  <PropertyGroup Condition="'$(TargetFramework)' == 'net9.0'">
    <LaunchSettingsFile>Properties\launchSettings.net9.json</LaunchSettingsFile>
  </PropertyGroup>

  <!-- 为.NET Framework 4.7.2指定专属启动配置 -->
  <PropertyGroup Condition="'$(TargetFramework)' == 'net472'">
    <LaunchSettingsFile>Properties\launchSettings.net472.json</LaunchSettingsFile>
  </PropertyGroup>
</Project>

然后分别创建两个配置文件:

  • Properties/launchSettings.net9.json(保留原有的两个配置):
{
  "profiles": {
    "Windows": {
      "commandName": "Project"
    },
    "WSL2": {
      "commandName": "WSL2",
      "distributionName": ""
    }
  }
}
  • Properties/launchSettings.net472.json(只保留Windows配置):
{
  "profiles": {
    "Windows": {
      "commandName": "Project"
    }
  }
}

这种方式划分更清晰,适合配置差异较大的场景,Visual Studio切换目标框架时会自动加载对应的配置文件,避免冲突。

内容的提问来源于stack exchange,提问作者bairog

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 01:16:02