出错代码:

MSBuildWorkspace workspace = CreateWorkspace();
Solution solution = workspace.OpenSolutionAsync(solutionPath).Result;

OpenSolutionAsync(solutionPath).Result获取Result的时候一直报错,称未能加载文件或程序集。
但是我系统的.NETvisual studionuget等均已经是最高版本。
而且单独打开solutionPath对应的.sln工程文件时都能正常编译生成

偏偏这行报错。

实际上,这个报错还是因为.NETMSbuild版本过低。低版本不兼容高版本的库。

第一步

你的系统中需要有更高版本的.NETvisual studionuget

安装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”,或它的某一个依赖项。系统找不到指定的文件的通解的更多相关文章

  1. 能加载文件或程序集“XXX”或它的某一个依赖项,系统找不到指定的文件

    能加载文件或程序集“XXX”或它的某一个依赖项,系统找不到指定的文件 http://blog.csdn.net/pplcheer/article/details/7796211 做项目总是遇到各种的问 ...

  2. 目标平台、活动平台 配置,出现未能加载文件或程序集“xxx”或它的某一个依赖项报错

    今天在做动态加载程序集的时候,发现明明程序集存在的情况下,还是依然报“未能加载文件或程序集“xxx”或它的某一个依赖项报错”的错误,排除了程序和配置的错误后,怀疑是否是环境的问题,于是百度加msdn后 ...

  3. 【转】未能加载文件或程序集“XXX”或它的某一个依赖项。试图加载格式不正确的程序。

    “/xxxxx”应用程序中的服务器错误. ------------------------------------------------------------------------------- ...

  4. 未能加载文件或程序集“XXX”或它的某一个依赖项。试图加载格式不正确的程序。

    64位系统 IIS7.0配置.net网站时报错:未能加载文件或程序集"XXX"或它的某一个依赖项.试图加载格式不正确的程序. 背景: 在64位的操作系统中, IIS7.0配置.ne ...

  5. windows7,windows8 64位系统 IIS7.0配置.net网站时报错:未能加载文件或程序集“XXX”或它的某一个依赖项。试图加载格式不正确的程序。

    背景: 在64位的操作系统中, IIS7.0配置.net网站时报错:未能加载文件或程序集“XXX”或它的某一个依赖项.试图加载格式不正确的程序. 解决办法: 把iis 对应的应用程序池 --高级设置- ...

  6. SharePoint 2016 vs部署报错:无法加载功能xxx未能加载文件或程序集xxx或它的某一个依赖项。系统找不到指定的文件

    环境描述: SharePoint 2016 单服务器场模式 开发工具:VS2017,项目类型(功能):计时器. 问题描述: 在用vs直接部署时,报错如下: 部署步骤"激活功能"中出 ...

  7. “未能加载文件或程序集“XXX”或它的某一个依赖项。试图加载格式不正确的程序”问题的解决

    发布到win7 64位旗舰版iis上时,报:“未能加载文件或程序集“BC.Common”或它的某一个依赖项.试图加载格式不正确的程序”. 该DLL的本地复制没有设置为true(在项目引用里找到该引用, ...

  8. C# 未能加载文件或程序集“xxx”或它的某一个依赖项。参数错误。(异常来自 HRESULT:0x80070057 (E_INVALIDARG))

    错误信息: 因为电脑突然蓝屏,然后重启,再运行项目,报了这个错. 解决方案: 环境是:VS2012+Win7 通过网上查找, 4.0 删除 C:\Windows\Microsoft.NET\Frame ...

  9. 未能加载文件或程序集XXX或它的某一个依赖项。试图加载格式不正确的程序。

    今天发布网站时,老是弹出下面这样一个错误. 经过一番折腾终于找到答案: 方法一: 在IIS中设置, 属性 ——常规—— 启用32位应用程序 修改为True. 方法二: 修改项目属性——生成——目标平台 ...

  10. 未能加载文件或程序集“XXX”或它的某一个依赖项。参数错误。 (异常来自 HRESULT:0x80070057 (E_INVALIDARG))

    移除引用,并删除packagede的引用文件.重新导入引用文件和引用~ 如果是电脑异常死机后报这错误, 解决方法 是 删除 C:\WINDOWS\Microsoft.NET\Framework\v4. ...

随机推荐

  1. 【ABP】项目示例(1)——项目搭建前置准备

    项目介绍 本项目使用.NET8+ABP+MySql搭建,基于DDD的设计思想,创建分层Web应用程序. 相关文档 .NET开发文档 Entity Framework Core开发文档 ABP开发文档 ...

  2. macOS Monterey(MacOS 12) 系统升级cocoapods

    老款MacBook系统Monterey(MacOS 12)由于brew停止了从上游下载cocoapods提示不支持os12系统,无法安装最新版cocoapods,本文讲述了另一种方法来更新cocoap ...

  3. MDK Debug时No target connected,STM32 ST-LINK Utility连接不上单片机的解决办法“Can not connect to target!”

    芯片下载程序成功,再次下载时出现,以下错误. 点击确认后,如下提示. 或提示如下. 不管怎么设置都侦测不到芯片. 使用STM32 ST-LINK Utility连接单片机时提示下边错误 "C ...

  4. Deepseek学习随笔(5)--- DeepSeek 在职场中的应用

    自动化办公 在职场中,DeepSeek 可以帮助自动化办公流程,如生成日报.撰写邮件等: 日报生成:请根据今日工作内容生成一份日报 DeepSeek 会生成一份简洁的工作日报,帮助你总结当天的工作内容 ...

  5. 推荐一款最新开源,基于AI人工智能UI自动化测试工具!支持自然语言编写脚本!

    随着互联网技术的飞速发展,Web应用越来越普及,前端页面也越来越复杂.为了确保产品质量,UI自动化测试成为了开发过程中不可或缺的一环.然而,传统的UI自动化测试工具往往存在学习成本高.维护困难等问题. ...

  6. 你好,新朋友:生成式AI的第一次对话

    像学习使用智能手机一样开启AI对话 一.从"第一次用智能手机"理解AI交互 还记得初次使用智能手机时的笨拙吗?滑动解锁.输入文字.下载应用-每一步都需要探索.生成式AI的对话也遵循 ...

  7. Selenium Javascript 滚动条操作

    js在selenium有许多应用,最主要的有滚动条操作. 实现功能:进入百度搜索结果页->滚动条分别滚到到顶部.底部及指定元素位置. 使用格式: driver.execute_script('w ...

  8. Manus的开源复刻OpenManus初探

    OpenManus介绍 Manus需要邀请码才能体验,目前大部分人都体验不到. 有几个大佬花3个小时就复现了一个简单的原型OpenManus,让我们体验体验吧!! 截至目前,该项目已经获得了25.9k ...

  9. [tldr]通过指令获取github仓库的单个文件的内容

    针对一个公开的github仓库,有些时候不需要clone整个仓库的内容,只需要对应的几个文件.但是直接通过网页点击下载文件很麻烦,在服务器上也不好这样操作. 因此,如何使用curl或者wget指令快速 ...

  10. 如何通过 MCP 将你的 Supabase 数据库连接到 Cursor

    Cursor + MCP + Supabase. 图片来自作者 在过去几周里,MCP(Model Context Protocol,模型上下文协议)在许多 AI 相关的在线社区和论坛里大火.开发者和技 ...