无法加载文件或程序集“Microsoft.IdentityModel.Clients.ActiveDirectory,版本=3.19.8.16603。与程序集引用不匹配

Could not load file or assembly 'Microsoft.IdentityModel.Clients.ActiveDirectory, Version=3.19.8.16603. does not match the assembly reference

solution.One中有两个项目是API,另一个是OrganizationServiceCall。

我安装了一个名为 Microsoft.CrmSdk.XrmTooling.CoreAssembly 的 nuget 包,它安装了默认包 Microsoft.IdentityModel.Clients.ActiveDirectory,版本 =3.19.8.1660。

但我已经安装了 Microsoft.IdentityModel.Clients.ActiveDirectory,其他 project.While 版本=2.22 调用 API 我得到了这个错误:

{“无法加载文件或程序集‘Microsoft.IdentityModel.Clients.ActiveDirectory,版本=3.19.8.16603”}。

当同一个解决方案有不同版本的 nuget pacakge 冲突时我如何完成工作?

您可以尝试一些解决方法

  1. 如果第二个项目api最新版本没有问题,也可以尝试升级到Microsoft.IdentityModel.Clients.ActiveDirectory版本3.19.8

  2. 或者如果可以的话,将所有的Nu​​Get包更新到最新的。

  3. 或者可能需要手动编辑您的 csproj 以在特定项目中添加该特定版本。

  4. 在配置文件中使用带有绑定重定向的单个程序集版本

    i) NuGet 不会处理程序中的引用。它只是 管理包。我们可能不得不强制我们的项目使用 使用绑定重定向加载程序集。

    ii) 这指定使用哪个版本的程序集而不是旧版本 版本。不一定需要指定更高版本 在 newVersion 中,也可以提供早期版本 新版本。如果有不同的版本,尽量统一 跨项目。问题应该已经解决了。

    这里一个项目是指ActiveDirectory版本> 3.0,其他 项目需要的版本更少。添加绑定重定向到 app.config 在某些情况下可以帮助解决问题。但在那之前 请确保特定的 dll 存在于 配置文件。

    请注意,运行时部分是要添加的部分。

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <startup> 
         ...
      <runtime>
              ....
          <dependentAssembly>       
            <assemblyIdentity 
     name="Microsoft.IdentityModel.Clients.ActiveDirectory"  publicKeyToken="31bf3856ad364e35" culture="neutral" />
            <bindingRedirect oldVersion="3.0.0.0-3.19.8.16603" newVersion="3.19.8.16603" />
          </dependentAssembly>
         .....
      </runtime>
    </configuration>
    

并尝试显式设置 特定版本 为任何 DLL 给你版本问题 (Microsoft.IdentityModel.Clients.ActiveDirectory) 到 False 来自 Visual Studio。

其他方法,你可以试试auto-generate绑定重定向.

<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
 <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>

参考文献:

  1. azure-sdk-for-media-services :issues(github)
  2. 如何解决“无法加载文件或程序集 |通过奇拉格 卢帕尼 |中
  3. Visual Studio 中的 NuGet 包还原故障排除 |微软 文档