出错代码:

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

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

偏偏这行报错。

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

文章目录

  • 第一步
    • 安装NET 6.0
    • 安装最新版Visual Studio
    • 更新nuget
  • 第二步
    • 更新目标框架
    • 更新项目依赖
  • 第三步
  • 第四步
  • 总结

第一步

你的系统中需要有更高版本的.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”或它的某一个依赖项。试图加载格式不正确的程序。...

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

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

    "未能加载文件或程序集"xxx"或它的某一个依赖项.试图加载格式不正确的程序."这个错误可能在IIS或VS中出现,一般是平台和dll版本不一致导致的. 一.VS ...

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

    未能加载文件或程序集"XXX"或它的某一个依赖项.试图加载格式不正确的程序. 作者: 字体:[增加 减小] 类型:转载 时间:2012-11-01 我要评论 如果你将应用程序生成x ...

  4. 未能加载文件或程序集“xxx”或它的某一个依赖项

    未能加载文件或程序集"xxx"或它的某一个依赖项.试图加载格式不正确的程序. 说明: 执行当前 Web 请求期间,出现未处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导 ...

  5. 报错:未能加载文件或程序集“XXX”或它的某一个依赖项。系统找不到指定的文件...

    解决方案:首先查看UI层是否引用要反射创建的类库,其次从新加载其类库,生成解决方案,启动项目 web.config中配置代码如下: <!--配置节--> <add key=" ...

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

    解决方法:方法一: 怎么也想不起来之前是怎么解决的了,上网找资料,没有一个靠谱的.偶然间查看IIS7.5的应用程序池设置,看到如下设置:(启用32位应用程序) 属性 --常规-- 启用32位应用程序 ...

  7. 未能加载文件或程序集“xxx”或它的某一个依赖项。生成此程序集的运行时比当前加载的运行时新,无法加载此程序集...

    主要原因是 引用的项目 .net 版本与启动的框架不同 我的电脑->右键管理->internet信息服务->默认网站->右键属性->ASP.NET->> 更改 ...

  8. System.IO.FileLoadException:“未能加载文件或程序集“xxx”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配

    原因分析:方法对应的程序集所引用组件对应的dll文件与项目文件XXX.csproj中记录的Version,PublicKeyToken等信息不对应 <Reference Include=&quo ...

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

    出现这个问题,请检查工程生成的目标平台是否一致,不一致则会导致这个问题. 希望能解决你碰到的问题,谢谢!!!

  10. 未能加载文件或程序集“xxx”或它的某一个依赖项。生成此程序集的运行时比当前加载的运行时新,无法加载此程序集

    解决办法: 在IIS里配置Silverlight网站时 , 将网站的应用程序池 .net  Framework   版本设置为 4.0

最新文章

  1. Java数据结构简述
  2. BZOJ1433 [ZJOI2009]假期的宿舍 - 二分图匹配
  3. wifi定位算法 java_记一次APP的so层算法逆向(七)
  4. 长庆企业信息化管理课件_详解:企业信息化管理系统,不能马虎对待
  5. fscanf和feof的组合使用
  6. [css] 用css3画出一个立体魔方
  7. WARNING: IPv4 forwarding is disabled. Networking will not work.解决方法
  8. python 之头像上传,预览
  9. Qt之布局Layout的应用
  10. 如何计算加权和及矩阵乘法运算回顾
  11. SELECT TOP 100 PERCENT
  12. 计算机绘图读后笔记3000字,0921计算机绘图0.doc
  13. Redis Desktop Manager 运行时报0xc000007b
  14. 2013电大计算机综合应用能力实训将邮件保存到考生文件夹,计算机综合应用能力实训指南.doc...
  15. MATLAB中实现特定像素区域处理
  16. 栈内存和堆内存的区别
  17. Android自带人脸识别
  18. java使用wordcloud生成词云
  19. java ssl是什么意思_java中SSL是什么?包括哪些内容?
  20. Trinamic电机驱动芯片 完美替代TI DRV型号大全

热门文章

  1. script type=text/JavaScript是什么
  2. 汇率实时行情查询接口
  3. html 图片比例 js,JavaScript,等比例缩放图片的函数
  4. 弹性公网ip到底是什么意思?弹性公网ip与公网ip的区别
  5. 《蔡康永说话之道》书摘
  6. 什么是PaaS平台 ?
  7. 分门别类刷leetcode——栈、队列、堆(C++实现)
  8. win10商店的应用下载移植 注:.appx文件最好在win10使用 附win10商店UWP的安装包
  9. 测试吃鸡fps软件,GTX1050Ti吃鸡足矣 2017热销游戏本吃鸡横评
  10. IOS开发之——TOM猫(19)