无法加载文件或程序集“System.Runtime,Version=4.2.1.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”

yu *_*ian 8 .net c#

我从同事那里得到了这个项目,在构建项目时遇到了这个错误:

无法加载文件或程序集“System.Runtime,Version=4.2.1.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”或其依赖项之一。该系统找不到指定的文件。

我猜这个dll位于.NET Framework Dll文件夹:中C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework,但是经过搜索,我发现了很多其他版本的dll,但我没有找到任何System.Runtime.dll4.2.1.0

这是另一个类似的问题,但没有答案。

System.Runtime.dll 4.2.1.0.NET Framework 中真的存在吗?

Ous*_*ima 19

我知道这是一篇旧帖子,但我认为与遇到这个确切问题的其他人分享我的解决方案很有用。

  1. 我通过终端创建了一个新的控制台应用程序:dotnet new console
  2. 我在 Visual Studio 2019 中打开了控制台应用程序的文件夹。
  3. 我尝试使用运行代码ctrl + f5

就在这时我遇到了:Could not load file or assembly 'System.Runtime, Version=5.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'

为了解决这个问题,我必须打开其中以 结尾的文件,.csproj然后执行ctrl + f5. 之后就顺利进行了。希望这会帮助别人。排查了好久才找到解决办法。

TL;DR:在 Visual Studio 2019 中打开.csproj文件,而不是它所在的项目文件夹。


小智 13

当您打开文件夹而不是解决方案文件时,会发生这种情况。只需确保加载解决方案文件而不是项目目录即可。


Sci*_*cia 3

这是一个相当烦人的问题。据我所知,这是由dependentAssembly安装新软件包或更新软件包引起的。至少这是我的根本原因。

newVersion尝试检查Web.config. 如果我是对的,你应该有这样的东西:

<dependentAssembly>
  <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.3.0" />
</dependentAssembly>
Run Code Online (Sandbox Code Playgroud)

确保您的dependentAssembly 与(或 Nuget 包管理器内的版本)Web.config中定义的版本匹配。Web.Base.config如果没有,请将 更改newVersion=为您在 Nuget 包管理器中安装的版本。

如果这不起作用,您可以查看此链接。可能是一个适合您的选择。

  • 就我而言,在将目标框架从 4.7 更改为 4.7.2 后,我实际上必须删除 `System.Runtime` 和 `System.Net.Http` 绑定‍♂️ (2认同)