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

Visual Studio运行测试时重复构建未修改项目及xUnit加载错误求助

解决方案:不必要的项目重建与xUnit测试适配器加载失败问题

一、仅运行测试不触发构建的设置

Visual Studio GUI操作

  • 在测试资源管理器中,右键选中要运行的测试/测试集合,选择「运行选中的测试(不构建)」。
  • 调整全局构建行为:打开「工具>选项>项目和解决方案>生成并运行」,将「运行时,当项目过期时」设置为「从不构建」,同时保持「运行时仅生成启动项目及依赖项」开启状态。

命令行方式

使用dotnet test命令时添加--no-build参数,直接跳过构建步骤运行测试:

dotnet test --no-build

排查不必要重建的根源

若开启上述设置仍触发重建,需检查以下几点:

  • 确认项目中所有文件的CopyToOutputDirectory均为PreserveNewest,无文件被设为Always。
  • 检查MSBuild自定义目标:若项目包含自定义构建脚本,确认是否存在强制触发重建的逻辑(如总是修改输出文件时间戳)。
  • 验证项目依赖:确保测试项目仅依赖必要的生产项目,无冗余引用导致连锁构建。

二、xUnit测试适配器加载失败的解决方法

针对错误Failed to load extensions from file ‘C:\Users\monit\nuget\packages\xunit.runner.visualstudio\2.5.0\build\net6.0\xunit.runner.visualstudio.dotnetcore.testadapter.dll’,尝试以下额外排查步骤:

  • 适配版本兼容性:
    • 确认当前Visual Studio版本与xUnit.runner.visualstudio 2.5.0兼容,可尝试降级到2.4.5或升级到2.5.1版本测试。
    • 确保测试项目中xunit、xunit.runner.visualstudio、xunit.assert等包版本完全一致,避免版本不匹配。
  • 手动修复项目引用:
    在测试项目的.csproj文件中,手动添加或修正xUnit适配器的引用配置:
    <PackageReference Include="xunit.runner.visualstudio" Version="2.5.0">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
    
  • 清理测试缓存:
    删除Visual Studio测试缓存目录%TEMP%\VisualStudioTestExplorerExtensions下的所有文件,重启VS后重新运行测试。
  • 排查第三方干扰:
    禁用Visual Studio的第三方扩展(如Resharper、CodeRush等),测试是否由扩展冲突导致加载失败。
  • 文件权限验证:
    确认目标DLL文件存在且当前用户拥有读取权限,排查杀毒软件是否拦截该文件的访问。

内容的提问来源于stack exchange,提问作者Nițu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 19:50:06