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

使用NUnit测试.NET6 WPF应用遇框架不匹配错误,求解决方案

解决WPF项目与NUnit测试项目框架不匹配问题

问题原因

WPF项目目标框架为net6.0-windows10.0.17763.0(Windows特定的.NET 6框架,包含WPF所需的桌面API),而NUnit测试项目默认目标框架为net6.0(通用.NET Core框架),后者无法直接引用前者,导致编译错误。

解决方案

将NUnit测试项目的目标框架修改为与WPF项目一致的Windows特定框架,具体步骤如下:

方法1:通过Visual Studio界面修改

  • 右键NUnit测试项目 → 选择「属性」
  • 在「应用」标签页的「目标框架」下拉菜单中,选择net6.0-windows10.0.17763.0(与你的WPF项目版本完全匹配)
  • 保存设置,重新编译项目

方法2:直接编辑测试项目的.csproj文件

打开测试项目的.csproj文件,将原有的<TargetFramework>节点替换为与WPF项目一致的框架版本,示例修改如下:

原测试项目.csproj片段:

<PropertyGroup>
  <TargetFramework>net6.0</TargetFramework>
  <Nullable>enable</Nullable>
  <IsPackable>false</IsPackable>
  <IsTestProject>true</IsTestProject>
</PropertyGroup>

修改后:

<PropertyGroup>
  <TargetFramework>net6.0-windows10.0.17763.0</TargetFramework>
  <Nullable>enable</Nullable>
  <IsPackable>false</IsPackable>
  <IsTestProject>true</IsTestProject>
  <!-- 若需要测试WPF UI组件,添加以下配置;仅测试业务逻辑可忽略 -->
  <!-- <UseWPF>true</UseWPF> -->
</PropertyGroup>

注意事项

不要修改WPF项目的TargetFramework为net6.0,因为WPF是Windows桌面专属框架,依赖net6.0-windows提供的系统API,修改后会丢失WPF运行所需的依赖,引发新的编译错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 04:45:31