gpt4 book ai didi

.net - 将 bindingRedirect 添加到 .Net 标准库

转载 作者:行者123 更新时间:2023-12-03 13:27:25 33 4
gpt4 key购买 nike

我有一个 .Net 标准库,在尝试使用其中一个依赖库时出现错误,我认为这是由于版本冲突。在旧式 .Net 类库中,我可能会添加如下内容:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

但是,我显然不能在 Net Standard 库中做到这一点。所以,我的问题是,在 .Net 标准世界中解决此类问题的策略是什么?

最佳答案

绑定(bind)重定向是一个 .NET 框架概念,在 .NET Standard 和 .NET Core 上没有绑定(bind)重定向。

但是,应用程序(实际的 .NET Framework 或 .NET Core 应用程序)需要解析要使用的文件。在 .NET Core 上,这是通过生成 deps.json 来完成的。基于构建输入的文件和 .NET Framework 应用程序使用绑定(bind)重定向。

如果需要绑定(bind)重定向,则必须将它们添加到使用 .NET Standard 库的 .NET Framework 应用程序(或库)中。

这些绑定(bind)重定向可以配置为在构建期间根据编译期间使用的程序集自动生成,请参阅 documentation on automatic binding redirects .当使用 NuGet 的新 PackageReference使用 NuGet 包的风格,这是自动完成的。由于正确配置因项目类型而异,请参阅公告Issues with .NET Standard 2.0 with .NET Framework & NuGet详细说明。

确保使用正确的绑定(bind)重定向的最简单方法是确保 .NET Framework 应用程序或库设置这些属性(在 csproj/vbproj 内。生成 .exe 可执行文件但单元需要的项目不需要第二种方法测试项目):

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

关于.net - 将 bindingRedirect 添加到 .Net 标准库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46111749/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com