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

向含测试项目的解决方案添加继承窗体时报TestFramework加载错误

问题原因与解决方法

问题背景

你的解决方案包含多个项目,主输出为Windows Forms应用程序,另有一个引用了WinForm项目的测试项目。在尝试添加继承窗体时收到如下报错:

无法加载文件或程序集“Microsoft.VisualStudio.TestPlatform.TestFramework, Version=14.0.0.0” ... 指针无效(异常来自 HRESULT:0x80004003 (E_POINTER))
你没有在WinForms项目中引用测试项目,无法理解程序加载该程序集的原因。

根本原因

这是Visual Studio WinForms设计器的已知行为:设计器在解析继承窗体的基类类型时,会扫描整个解决方案所有项目的依赖,而非仅加载当前操作的WinForm项目的引用。哪怕你的WinForm项目没有引用测试框架,测试项目的依赖缺失、版本不匹配问题也会被设计器的加载上下文捕获,进而抛出加载错误。

解决方案

  • 方案1(临时快速解决):右键测试项目,选择【卸载项目】,再执行添加继承窗体的操作,操作完成后右键测试项目选择【重新加载项目】即可。
  • 方案2(永久解决):统一测试项目依赖的版本,或者添加程序集绑定重定向:
    1. 打开测试项目的NuGet包管理界面,将Microsoft.VisualStudio.TestPlatform.TestFramework包更新到与你当前Visual Studio版本适配的最新稳定版
    2. 如果更新后仍有报错,在WinForm项目的app.config文件的<runtime>节点下添加如下绑定重定向配置,将newVersion的值替换为你测试项目中实际安装的TestFramework包版本号:
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Microsoft.VisualStudio.TestPlatform.TestFramework" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-14.0.0.0" newVersion="实际安装的版本号" />
      </dependentAssembly>
    </assemblyBinding>
    
  • 方案3:右键解决方案选择【属性】→【配置属性】→【配置】,取消测试项目在Debug配置下的生成勾选,后续Debug调试阶段设计器就不会加载测试项目的依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 12:39:02