任何人都可以解释为什么我们会收到诸如“无法加载文件或程序集”之类的错误。每当我专门在 azure sdk 中更新 nuget 引用时,我都会遇到此错误,并且由于缺乏知识,我很难非常奇怪地修复它们。您能解释一下这个错误吗? 我的意思是我可以消化这个错误,但我找不到真正的解决方案。
我已经明确决定我会理解这个错误并在这个平台上了解更多信息。如果您能一步步解释这一点,那将增加我的知识和核心生产力。
我对此类错误的了解非常有限,我们需要在 web.config 文件中添加一些代码。
<bindingRedirect oldVersion="0.0.0.0-0.0.0.1" newVersion="0.0.0.1" />
但说实话我不知道如何决定哪个版本需要替换旧版本和新版本。我最近将 Azure.Identity nuget 添加到我的项目中。
<ItemGroup>
<PackageReference Include="Azure.Identity" Version="1.5.0" />
<PackageReference Include="Azure.Storage.Blobs" Version="12.10.0" />
</ItemGroup>
例如,现在我一直在努力解决这个错误。
System.IO.FileLoadException
HResult=0x80131040
Message=Could not load file or assembly 'Azure.Core, Version=1.19.0.0, Culture=neutral,
PublicKeyToken=92742159e12e44c8' or one of its dependencies. The located assembly's
manifest definition does not match the assembly reference. (Exception from HRESULT:
0x80131040)
Source=Azure.Storage.Blobs
StackTrace:
我知道要更改哪里来解决此错误,但不知道要更改什么。
我一直在阅读这个url bounding-redirects的内容,了解了很多新知识。我通过将以下 xml 添加到我的 web.config 文件中修复了此错误。
<dependentAssembly>
<assemblyIdentity name="Azure.Core" publicKeyToken="92742159e12e44c8" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.20.0.0" newVersion="1.20.0.0" />
</dependentAssembly>
为了处理此错误,该门户确实很有帮助https://nuget.info/packages/Azure.Core/1.20.0
注: 有时 Nuget 版本不是汇编版本。所以要小心。
以防万一其他人发现这很有用。我在实际环境中出现错误,但在开发环境中一切正常。
简单地说,我无法使用开发环境中新创建的程序集绑定来更新实时环境中的 web.config 文件。
感谢 Pramod 的回答,它为我指明了解决问题的正确方向。
就我而言,我已将 asp.net 5 更新为 asp.net 6,但没有更新
program.cs
以将 IHostBuilder
替换为 WebApplication
在生产中启动 asp.net 6 期间,我遇到了以下异常:应用程序无法加载程序集。
对我来说,我能够通过升级/标准化 NuGet 包来解决这个问题。我知道有些人已经能够通过绑定重定向解决问题,但我已经尝试过但没有成功。我已经多次遇到“无法加载文件或程序集”的问题,并且每次我在不同的项目中都有不同的包版本。例如,如果我的测试项目有 Azure.Core v4.5,而我的类库有 v4.6,我会将较低版本升级到 4.6,然后错误就会消失。 无论如何,在您的项目中使用相同且最新的稳定包版本通常是一个好主意,因此除非您确实需要进行绑定重定向,否则我发现这是一个更好的解决方案。