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

多目标项目中net45加载失败(MSB3644错误)的解决方法

问题

从GitHub克隆KGySoft.Drawing仓库后,构建多目标项目时遭遇.NET 4.5加载失败。已尝试多种方式安装.NET 4.5,且能创建其他框架版本的项目,但net45仍无法正常加载。

项目配置如下:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFrameworks>net35;net40;net45;net46;netstandard2.0;netstandard2.1;netcoreapp2.0;netcoreapp3.0;net5.0;net6.0</TargetFrameworks>
  </PropertyGroup>
</Project>

错误提示:

error MSB3644: 
    未找到.NETFramework,Version=v4.5的引用程序集。
    请安装该框架版本的开发包(SDK/目标包),或重新定向你的应用程序。

解决方法

  • 确认.NET 4.5目标包安装状态
    打开Visual Studio安装器,进入“修改”界面,在“单个组件”中搜索“.NET Framework 4.5 目标包”,确保已勾选并完成安装。若之前手动安装过相关包,建议先卸载再通过VS安装器重新安装,避免版本冲突。

  • 检查引用程序集目录完整性
    查看系统路径C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5是否存在,且包含完整的文件。若目录缺失或文件不全,重新下载对应目标包并解压至该路径。

  • 强制指定目标框架引用路径
    在项目根目录创建或修改Directory.Build.props文件,添加以下配置,明确指定.NET 4.5的引用路径:

    <Project>
      <PropertyGroup>
        <FrameworkPathOverride>$(ProgramFiles)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5</FrameworkPathOverride>
      </PropertyGroup>
    </Project>
    
  • 临时跳过.NET 4.5构建
    若暂时不需要net45版本,可修改项目文件的TargetFrameworks节点,移除net45后先构建其他版本:

    <TargetFrameworks>net35;net40;net46;netstandard2.0;netstandard2.1;netcoreapp2.0;netcoreapp3.0;net5.0;net6.0</TargetFrameworks>
    
  • 清理缓存后重建项目
    删除项目下的bin和obj目录,执行dotnet nuget locals all --clear命令清理NuGet缓存,然后重新运行构建命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 00:52:57