如何为多目标项目的.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
相关产品推荐
相关产品推荐

