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

在Rider中为C#项目添加PresentationFramework引用报错如何解决?

解决方法

你不需要手动引用本地dll,也不需要更换控制台项目模板,只需要修改项目配置即可解决问题,步骤如下:

方法1:直接修改csproj配置文件(最快捷)

打开你当前项目的.csproj文件,修改以下3处配置即可:

  1. 把根节点的Sdk属性从Microsoft.NET.Sdk改为Microsoft.NET.Sdk.WindowsDesktop
  2. 在<PropertyGroup>节点中,把<TargetFramework>的值从net5.0改为net5.0-windows(WPF是Windows平台专属API,需要指定Windows运行时)
  3. 在<PropertyGroup>节点中新增一行<UseWPF>true</UseWPF>

修改完成后保存文件,Rider会自动触发项目还原,自动加载所有WPF相关的依赖(包括PresentationFramework、WindowsBase等你需要的程序集),不需要你手动添加任何dll引用,也不会出现版本不匹配的问题。

正确的csproj配置示例:

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net5.0-windows</TargetFramework>
    <UseWPF>true</UseWPF>
  </PropertyGroup>
</Project>

方法2:通过Rider可视化界面操作

如果你不想手动改配置文件,可以按以下步骤在Rider中设置:

  • 右键解决方案面板中的你的项目,点击「Properties」(属性)
  • 切换到左侧的「Application」(应用)标签页
  • 找到「Target framework」(目标框架)下拉选项,选择带-windows后缀的对应版本,即net5.0-windows
  • 找到「Use WPF」的勾选框,勾选后保存配置
  • Rider会自动同步配置并还原所有需要的WPF依赖

报错原因说明

你之前手动单独引用PresentationFramework.dll的方式,没有处理它的依赖链:PresentationFramework还依赖WindowsBase、System.Xaml等多个配套程序集,手动引用的单个dll版本和你项目的SDK版本不匹配,才会触发运行时程序集加载失败的异常。通过SDK自带的UseWPF配置,会自动处理所有依赖的版本匹配问题,完全不需要手动管理单个dll。

配置完成后你原来的代码不需要做任何修改,直接运行就能正常弹出MessageBox窗口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 01:15:04