Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将bindingRedirect添加到.Net标准库_.net_Dependencies_.net Standard_Assembly Binding Redirect - Fatal编程技术网

将bindingRedirect添加到.Net标准库

将bindingRedirect添加到.Net标准库,.net,dependencies,.net-standard,assembly-binding-redirect,.net,Dependencies,.net Standard,Assembly Binding Redirect,我有一个.Net标准库,在尝试使用其中一个依赖库时出错,我认为这是由于版本冲突造成的。在旧式的.Net类库中,我可能会添加如下内容: <?xml version="1.0" encoding="utf-8"?> <configuration> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly&g

我有一个.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标准世界中,解决此类问题的策略是什么?

绑定重定向是一个.Net框架概念,在.Net标准和.Net核心上没有绑定重定向

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

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

可以将这些绑定重定向配置为在生成期间根据编译期间使用的程序集自动生成,请参阅。当使用NuGet新的
PackageReference
使用NuGet软件包的风格时,这是自动完成的。由于正确配置此选项会因项目类型而异,请参阅公告以了解详细说明

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


真的
真的

将这些属性应用于my.Net Framework库(不是exe)可能存在重复,但未导致添加绑定重定向。我有一个使用
条目的.Net Framework类库。该项目有一个app.config。绑定重定向仍然没有被自动添加,尽管构建抱怨我应该添加它们。我可以手动添加它们,但如果能自动实现,那就太好了。嗨@Ryangrifith,如果有帮助的话,就分享一些见解吧。我为这个问题挣扎了一段时间。这两种设置对我起了作用。但是,与.NET Framework项目不同,在该项目中,app.config使用新的绑定重定向元素进行了原位修改,我必须构建该项目,.dll.config拥有所有条目。在.NETSTD和Fwk类库中运行良好。祝你好运。请链接到自动生成这些重定向的
PackageReference
文档。它对我不起作用,无论是在
src
还是
bin
版本的
app.config
PackageReference都与这些重定向没有多大关系。有了这些nuget,就不再接触app.config,msbuild执行重定向生成并将它们添加到输出中生成的app.config中。如果app.configi中已经存在重定向,则不确定这是如何交互的。我是否遗漏了一些内容,或者这个答案只是描述了如何在.NET Framework中使用绑定重定向,而实际上并没有解释在.NET Core中可以使用哪些等效功能?答案意味着我需要对
.deps.json
文件做些什么,但我仍然完全不知道那可能是什么。
<PropertyGroup>
    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
    <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>