【BUG】.NET项目|未能加载文件或程序集“xxx”,或它的某一个依赖项。系统找不到指定的文件的通解
出错代码:
MSBuildWorkspace workspace = CreateWorkspace();
Solution solution = workspace.OpenSolutionAsync(solutionPath).Result;
在OpenSolutionAsync(solutionPath).Result获取Result的时候一直报错,称未能加载文件或程序集。
但是我系统的.NET、visual studio、nuget等均已经是最高版本。
而且单独打开solutionPath对应的.sln工程文件时都能正常编译生成。
偏偏这行报错。

实际上,这个报错还是因为.NET、MSbuild版本过低。低版本不兼容高版本的库。
第一步
你的系统中需要有更高版本的.NET、visual studio、nuget。
安装NET 6.0
注:现在(2022年6月3日)已经有NET 7.0 preview了,但没有stable,也可以装NET 7.0。
点击下载:下载 .NET 6.0 (Linux、macOS 和 Windows)。
安装最新版Visual Studio
注:现在最新版是VS 2022。
点击进入官网的安装教程:安装 Visual Studio。
更新nuget
运行如下指令:
nuget update -self
注:若上述指令提示称未安装nuget,请先安装。
点击进入NuGet下载页:Available NuGet Distribution Versions。
第二步
更新目标框架
先右键项目,选择项目属性,设置Target Framework(目标框架),改成最新版.NET Framework或者最新版.NET Core的框架(就是你当前使用的版本)。

更改完成后,重新编译一次,保证当前修改不影响代码编译,并确定代码能够用于新的框架。
更新项目依赖
右键出错的项目,点击管理NuGet程序包。

然后更新所有依赖:

注意:若你的目标框架未修改,更新将不会成功。
更新依赖后,重新运行代码,就不会出现找不到程序集的报错了。
第三步
倘若一切都是最新版,仍然找不到程序集,这说明你的项目缺少对这个程序集的引用,但又确实用到了该程序集。
这种情况,在NuGet中安装该程序集,即可解决问题。
例如报错未能加载文件或程序集System.IO.FileNotFoundException:“未能加载文件或程序集“System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或它的某一个依赖项。系统找不到指定的文件。。

注:安装时需确保程序集的依赖项符合当前项目的版本。
第四步
倘若第三步找不到报错提到的程序集、或者已经安装了最新版但仍然提示旧版的报错,可考虑引用顺序,或是否安装错了一个程序集。
这一类的典型:
{"未能从程序集“Microsoft.Build.Framework, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”中加载类型“Microsoft.Build.Framework.IMetadataContainer”。":"Microsoft.Build.Framework.IMetadataContainer"}
已知Microsoft.Build.Framework已经安装了17.2.0,可报错提示说15.1.0.0中有东西找不到。
即使将using Microsoft.Build.Framework;这行注释掉,报错提示还是不变
——这是因为,其他的程序集中也有Microsoft.Build.Framework,它们的版本过低,并且比Microsoft.Build.Framework先一步被引用。
可以调整using顺序,也可以安装最新版Microsoft.Build,直接解决这个问题。
注:
Microsoft.Build.Framework属于Microsoft.Build,但在NuGet中被作为两个包发布,假设已经安装Microsoft.Build,就不需要再安装Microsoft.Build.Framework。
总结
微软系列的东西最好是全部向最新版看齐。
【BUG】.NET项目|未能加载文件或程序集“xxx”,或它的某一个依赖项。系统找不到指定的文件的通解的更多相关文章
- 能加载文件或程序集“XXX”或它的某一个依赖项,系统找不到指定的文件
能加载文件或程序集“XXX”或它的某一个依赖项,系统找不到指定的文件 http://blog.csdn.net/pplcheer/article/details/7796211 做项目总是遇到各种的问 ...
- 目标平台、活动平台 配置,出现未能加载文件或程序集“xxx”或它的某一个依赖项报错
今天在做动态加载程序集的时候,发现明明程序集存在的情况下,还是依然报“未能加载文件或程序集“xxx”或它的某一个依赖项报错”的错误,排除了程序和配置的错误后,怀疑是否是环境的问题,于是百度加msdn后 ...
- 【转】未能加载文件或程序集“XXX”或它的某一个依赖项。试图加载格式不正确的程序。
“/xxxxx”应用程序中的服务器错误. ------------------------------------------------------------------------------- ...
- 未能加载文件或程序集“XXX”或它的某一个依赖项。试图加载格式不正确的程序。
64位系统 IIS7.0配置.net网站时报错:未能加载文件或程序集"XXX"或它的某一个依赖项.试图加载格式不正确的程序. 背景: 在64位的操作系统中, IIS7.0配置.ne ...
- windows7,windows8 64位系统 IIS7.0配置.net网站时报错:未能加载文件或程序集“XXX”或它的某一个依赖项。试图加载格式不正确的程序。
背景: 在64位的操作系统中, IIS7.0配置.net网站时报错:未能加载文件或程序集“XXX”或它的某一个依赖项.试图加载格式不正确的程序. 解决办法: 把iis 对应的应用程序池 --高级设置- ...
- SharePoint 2016 vs部署报错:无法加载功能xxx未能加载文件或程序集xxx或它的某一个依赖项。系统找不到指定的文件
环境描述: SharePoint 2016 单服务器场模式 开发工具:VS2017,项目类型(功能):计时器. 问题描述: 在用vs直接部署时,报错如下: 部署步骤"激活功能"中出 ...
- “未能加载文件或程序集“XXX”或它的某一个依赖项。试图加载格式不正确的程序”问题的解决
发布到win7 64位旗舰版iis上时,报:“未能加载文件或程序集“BC.Common”或它的某一个依赖项.试图加载格式不正确的程序”. 该DLL的本地复制没有设置为true(在项目引用里找到该引用, ...
- C# 未能加载文件或程序集“xxx”或它的某一个依赖项。参数错误。(异常来自 HRESULT:0x80070057 (E_INVALIDARG))
错误信息: 因为电脑突然蓝屏,然后重启,再运行项目,报了这个错. 解决方案: 环境是:VS2012+Win7 通过网上查找, 4.0 删除 C:\Windows\Microsoft.NET\Frame ...
- 未能加载文件或程序集XXX或它的某一个依赖项。试图加载格式不正确的程序。
今天发布网站时,老是弹出下面这样一个错误. 经过一番折腾终于找到答案: 方法一: 在IIS中设置, 属性 ——常规—— 启用32位应用程序 修改为True. 方法二: 修改项目属性——生成——目标平台 ...
- 未能加载文件或程序集“XXX”或它的某一个依赖项。参数错误。 (异常来自 HRESULT:0x80070057 (E_INVALIDARG))
移除引用,并删除packagede的引用文件.重新导入引用文件和引用~ 如果是电脑异常死机后报这错误, 解决方法 是 删除 C:\WINDOWS\Microsoft.NET\Framework\v4. ...
随机推荐
- 【ABP】项目示例(1)——项目搭建前置准备
项目介绍 本项目使用.NET8+ABP+MySql搭建,基于DDD的设计思想,创建分层Web应用程序. 相关文档 .NET开发文档 Entity Framework Core开发文档 ABP开发文档 ...
- macOS Monterey(MacOS 12) 系统升级cocoapods
老款MacBook系统Monterey(MacOS 12)由于brew停止了从上游下载cocoapods提示不支持os12系统,无法安装最新版cocoapods,本文讲述了另一种方法来更新cocoap ...
- MDK Debug时No target connected,STM32 ST-LINK Utility连接不上单片机的解决办法“Can not connect to target!”
芯片下载程序成功,再次下载时出现,以下错误. 点击确认后,如下提示. 或提示如下. 不管怎么设置都侦测不到芯片. 使用STM32 ST-LINK Utility连接单片机时提示下边错误 "C ...
- Deepseek学习随笔(5)--- DeepSeek 在职场中的应用
自动化办公 在职场中,DeepSeek 可以帮助自动化办公流程,如生成日报.撰写邮件等: 日报生成:请根据今日工作内容生成一份日报 DeepSeek 会生成一份简洁的工作日报,帮助你总结当天的工作内容 ...
- 推荐一款最新开源,基于AI人工智能UI自动化测试工具!支持自然语言编写脚本!
随着互联网技术的飞速发展,Web应用越来越普及,前端页面也越来越复杂.为了确保产品质量,UI自动化测试成为了开发过程中不可或缺的一环.然而,传统的UI自动化测试工具往往存在学习成本高.维护困难等问题. ...
- 你好,新朋友:生成式AI的第一次对话
像学习使用智能手机一样开启AI对话 一.从"第一次用智能手机"理解AI交互 还记得初次使用智能手机时的笨拙吗?滑动解锁.输入文字.下载应用-每一步都需要探索.生成式AI的对话也遵循 ...
- Selenium Javascript 滚动条操作
js在selenium有许多应用,最主要的有滚动条操作. 实现功能:进入百度搜索结果页->滚动条分别滚到到顶部.底部及指定元素位置. 使用格式: driver.execute_script('w ...
- Manus的开源复刻OpenManus初探
OpenManus介绍 Manus需要邀请码才能体验,目前大部分人都体验不到. 有几个大佬花3个小时就复现了一个简单的原型OpenManus,让我们体验体验吧!! 截至目前,该项目已经获得了25.9k ...
- [tldr]通过指令获取github仓库的单个文件的内容
针对一个公开的github仓库,有些时候不需要clone整个仓库的内容,只需要对应的几个文件.但是直接通过网页点击下载文件很麻烦,在服务器上也不好这样操作. 因此,如何使用curl或者wget指令快速 ...
- 如何通过 MCP 将你的 Supabase 数据库连接到 Cursor
Cursor + MCP + Supabase. 图片来自作者 在过去几周里,MCP(Model Context Protocol,模型上下文协议)在许多 AI 相关的在线社区和论坛里大火.开发者和技 ...
