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

.NET 6单元测试项目无法加载项目引用问题求助

原因分析与解决方案

核心原因

当DeploymentEnabled=True时,MSTest会将测试相关文件复制到临时部署目录,而AssemblyResolution配置仅在测试运行阶段生效,测试发现阶段(Discovery)不会读取该配置。这导致发现阶段无法定位未复制到测试输出目录的Project1.dll,进而无法识别测试类和方法。

解决方案

方案1:禁用部署(推荐)

修改.runsettings中的DeploymentEnabled为False,让测试直接在项目输出目录运行,此时AssemblyResolution配置会在发现和运行阶段都生效:

<DeploymentEnabled>False</DeploymentEnabled>

方案2:配置测试发现阶段的解析路径

若必须启用部署,可通过环境变量指定发现阶段的程序集搜索路径:
在.runsettings的RunConfiguration节点中添加环境变量:

<RunSettings>
  <!-- 原有配置 -->
  <RunConfiguration>
    <EnvironmentVariables>
      <VSTEST_ASSEMBLY_RESOLUTION_SEARCH_PATH>C:\myapp\sources\bin</VSTEST_ASSEMBLY_RESOLUTION_SEARCH_PATH>
    </EnvironmentVariables>
  </RunConfiguration>
</RunSettings>

该环境变量会让测试发现阶段在指定路径下查找依赖程序集。

方案3:调整项目引用私有属性

若无需严格控制依赖复制,保持<Private>True即可,但会将Project1.dll复制到测试输出目录,可能不符合你的部署规范。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 12:59:57