Pau*_*els 17 .net dependencies assembly-binding-redirect .net-standard
我有一个.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>
Run Code Online (Sandbox Code Playgroud)
但是,我显然不能在Net Standard库中这样做; 所以,我的问题是,在.Net标准世界中解决此类问题的策略是什么?
Mar*_*ich 26
绑定重定向是.NET框架概念,.NET Standard和.NET Core上没有绑定重定向.
但是,应用程序(实际的.NET Framework或.NET Core应用程序)需要解析要使用的文件.在.NET Core上,这是通过deps.json基于构建输入生成文件并且.NET Framework应用程序使用绑定重定向来完成的.
如果需要绑定重定向,则必须将它们添加到使用.NET标准库的.NET Framework应用程序(或库)中.
这些绑定重定向也可以在构建期间根据编译期间使用的程序集自动生成,请参阅有关自动绑定重定向的文档.当使用NuGet PackageReference使用NuGet包的新风格时,这是自动完成的.由于正确配置会因项目类型而异,因此请参阅.NET Framework与NuGet的.NET Standard 2.0公告,以获取详细说明.
确保使用正确的绑定重定向的最简单方法是确保.NET Framework应用程序或库设置这些属性(在csproj/vbproj中.对于生成.exe可执行文件但需要单元的项目,不需要第二个属性测试项目):
<PropertyGroup>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11206 次 |
| 最近记录: |