资讯详情

.NET项目|未能加载文件或程序集“xxx”,或它的某一个依赖项。系统找不到指定的文件的通解

出错代码:

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

OpenSolutionAsync(solutionPath).Result获取Result总是报错,说文件或程序集没有加载。 但是我的系统.NETvisual studionuget已经是最高版本了。 而且

偏偏这行报错。 在这里插入图片描述

其实这个错误是因为.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;这行注释掉了,报错提示还是不变的 ——

可以调整using最新版本也可以安装顺序Microsoft.Build,直接解决这个问题。

注:Microsoft.Build.Framework属于Microsoft.Build,但在NuGet假设已安装为两包Microsoft.Build,就不需要再安装Microsoft.Build.Framework

总结

最好把微软系列的东西都跟上最新版本。

标签: pcb传感器353b03

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

 锐单商城 - 一站式电子元器件采购平台  

 深圳锐单电子有限公司