无法加载文件或程序集“System.Runtime.InteropServices”

Posted

技术标签:

【中文标题】无法加载文件或程序集“System.Runtime.InteropServices”【英文标题】:Could not load file or assembly 'System.Runtime.InteropServices' 【发布时间】:2019-04-01 06:46:32 【问题描述】:

我在我的 .NetFramework 4.6.2 项目中引用了一个针对 .NetStandard 和 .NetFramework 的 nuget 包。作为依赖,这个 nuget 包安装了 System.Runtime.InteropServices 包。但是现在当我尝试通过浏览器访问我的服务时,我收到了这个错误: Could not load file or assembly 'System.Runtime.InteropServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

花了 3 个多小时试图修复这个问题。有任何解决方法的人吗?

这是我引用的 nuget 包:https://github.com/wavefrontHQ/wavefront-opentracing-sdk-csharp

这是我的Web.config 的样子:

        <assemblyIdentity name="System.Runtime.InteropServices" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.IO" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.1.1.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
      </dependentAssembly>

【问题讨论】:

所以 web.config 条目根本没有效果。使用 fuslogvw.exe 进行故障排除。 我查看了 fuslogvw,但如果构建因任何组装问题而失败,它似乎会有所帮助。但就我而言,构建是成功的,但是当我尝试在浏览器中访问我的服务时遇到了这个问题。 【参考方案1】:

您可以尝试删除下面的 web.config 条目。

<dependentAssembly>
 <assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
 <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />
</dependentAssembly>

编辑:一些用户从Could not load file or assembly 'System.Runtime.InteropServices.RuntimeInformation 确认这种方法有效

【讨论】:

我尝试删除它,但我的服务返回 404 并崩溃。 能澄清一下404是什么意思吗?任何错误信息?您是否检查过您的服务是否能够访问 System.Runtime.InteropServices.dll?检查dll是否放置在文件夹中并授予权限。

以上是关于无法加载文件或程序集“System.Runtime.InteropServices”的主要内容,如果未能解决你的问题,请参考以下文章

无法加载文件或程序集 System.Runtime.CompilerServices.Unsafe

Visual Studio 2017 - 无法加载文件或程序集“System.Runtime,Version=4.1.0.0”或其依赖项之一

无法在Visual Studio Web Api项目上加载System.runtime dll

部署 Azure 函数时无法从程序集“System.Runtime”加载类型“System.IO.Path”

能加载文件或程序集“Aspose.Cells”或它的某一个依赖项。无法验证强名称签名

无法加载文件或程序集,但已加载