如何解决无法加载文件或程序集“Azure.Core”

Pra*_*ate 8 c# azure-sdk-.net azure-identity

任何人都可以解释为什么我们会收到诸如“无法加载文件或程序集”之类的错误。每当我专门在 azure sdk 中更新 nuget 引用时,我都会遇到此错误,并且由于缺乏知识,我很难非常奇怪地修复它们。您能解释一下这个错误吗?我的意思是我可以消化这个错误,但我找不到真正的解决方案。

我已经明确决定我将理解这个错误并在这个平台上获得更多信息。如果你能一步一步地解释这一点,那将增加我对核心生产力的了解。

我对此类错误的了解非常有限,我们需要在 web.config 文件中添加一些代码。

<bindingRedirect oldVersion="0.0.0.0-0.0.0.1" newVersion="0.0.0.1" />
Run Code Online (Sandbox Code Playgroud)

但说实话,我不知道如何决定需要用新旧版本替换哪个版本。我最近将 Azure.Identity nuget 添加到我的项目中。

  <ItemGroup>
    <PackageReference Include="Azure.Identity" Version="1.5.0" />
    <PackageReference Include="Azure.Storage.Blobs" Version="12.10.0" />
 </ItemGroup>
Run Code Online (Sandbox Code Playgroud)

例如,现在我一直在努力解决这个错误。

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:
Run Code Online (Sandbox Code Playgroud)

我知道要更改哪里来解决此错误,但不知道要更改什么。

Pra*_*ate 16

我一直在阅读这篇 url绑定重定向内容并了解了更多新知识。我通过将以下 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>
Run Code Online (Sandbox Code Playgroud)

为了处理这个错误,这个门户确实很有帮助https://nuget.info/packages/Azure.Core/1.20.0

注意: 有时Nuget版本不是程序集版本。所以要小心。