【问题标题】:Use newer version of library in ASP.NET Core application在 ASP.NET Core 应用程序中使用更新版本的库
【发布时间】:2021-09-12 02:06:36
【问题描述】:

我有一个使用 Microsoft.AspNetCore version 2.2.0 库的 ASP.NET Core 应用程序。这个库在内部使用System.Text.Encoding.Web version 4.5.0 库。由于安全问题,我们需要升级应用程序以至少使用System.Text.Encoding.Web version 4.5.1 库。

如何在 .NET Core 应用程序中做到这一点?

我们可以在 .NET 应用程序中轻松做到这一点,方法是使用 web.config 文件中的 AssemblyRedirect 属性。

【问题讨论】:

  • 绑定重定向是一个.NET框架的概念,.NET Standard和.NET Core上没有绑定重定向。详细的解释在in this link,你可以去看看。

标签: asp.net-core asp.net-core-3.1


【解决方案1】:

如 cmets 中所述,.NET Core 中没有绑定重定向。动态链接在运行时解析,并由 .deps.json 清单文件控制,该文件通常由编译器在编译期间生成。

实现所需的一种方法是直接在源项目中引用System.Text.Encodings.Web 4.5.1。这将通过 ASP.NET Core 框架覆盖对 System.Text.Encodings.Web 的任何传递引用:

<ItemGroup>
  <PackageReference Include="System.Text.Encodings.Web" Version="4.5.1" />
  <PackageReference Include="Microsoft.AspNetCore.App" />
  ...other dependencies
</ItemGroup>

重新构建代码,编译器现在将生成正确的.deps.json 文件,以便您的程序在运行时加载新版本的System.Text.Encodings.Web

【讨论】:

  • 谢谢@scharnyw,我今天学到了一些新东西。
猜你喜欢
  • 1970-01-01
  • 2017-02-12
  • 2016-09-17
  • 2022-08-18
  • 1970-01-01
  • 2017-03-27
  • 2019-05-09
  • 2012-06-26
  • 2017-01-31
相关资源
最近更新 更多