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

如何在Visual Studio中排除测试项目出现在启动项目选择器中?

问题描述

当测试项目被添加到包含控制台或Web应用项目的解决方案中时,测试项目会出现在启动项目下拉菜单里。首次打开Visual Studio时,测试项目甚至可能被默认选为启动项目,若存在大量测试项目,会难以快速找到并选择实际需要的启动项目。

使用环境:Visual Studio 2022、.NET 6、MSTest测试项目。示例解决方案包含ASP.NET Core Web API、MSTest测试项目和类库,其中WebApplication和TestProject会出现在启动项目选择器中,但ClassLibrary不会。

尝试过的无效操作:将测试项目的输出类型改为类库,在Visual Studio项目属性视图中修改时选择会立即变回控制台应用程序;即使手动添加<OutputType>Library</OutputType>到项目文件,测试项目仍会出现在启动项目下拉菜单中。

解决方案

在MSTest测试项目的.csproj文件中添加<IsLaunchable>false</IsLaunchable>属性,即可让测试项目不再显示在启动项目下拉菜单中。

修改后的TestProject.csproj示例代码:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
    <IsPackable>false</IsPackable>
    <!-- 添加此属性以隐藏测试项目的启动选项 -->
    <IsLaunchable>false</IsLaunchable>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.3.2" />
    <PackageReference Include="MSTest.TestAdapter" Version="2.2.10" />
    <PackageReference Include="MSTest.TestFramework" Version="2.2.10" />
    <PackageReference Include="coverlet.collector" Version="3.1.2" />
  </ItemGroup>

</Project>

原理说明

<IsLaunchable>是.NET SDK提供的属性,用于明确标记项目是否为可直接启动的应用程序。测试项目的执行依赖测试运行器,而非直接启动,因此将该属性设置为false后,Visual Studio会自动将其从启动项目选项中排除。

之前修改<OutputType>无效,是因为Microsoft.NET.Test.Sdk包会隐式配置测试项目的启动相关属性,而<IsLaunchable>是专门控制启动项目可见性的优先级属性,能覆盖这种隐式配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 05:54:56