NuGet:瞬态解析中的特定版本 - >绑定重定向

时间:2017-08-16 16:19:18

标签: nuget

我在csproj文件中使用了带有PackageReferences的新nuget机制。 使用瞬态解析时,不会在app.config中创建BindingRedirections。

例如:

我在csproj中使用新的nuget格式安装了System.Reactive 3.1.1。 Nuget不会创建绑定重定向。 我在PackageManagerConsole中尝试了Add-BindingRedirect但没有任何反应。

当我使用旧格式(packages.config)时,nuget会创建以下绑定重定向

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
 <dependentAssembly>
  <assemblyIdentity name="System.Reactive.Core" publicKeyToken="94bc3704cddfc263" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-3.0.3000.0" newVersion="3.0.3000.0" />
 </dependentAssembly>
</assemblyBinding>

接下来的问题是:为什么只有1个重定向? System.Reactive取决于多个nugets,但只有一个重定向?

有人可以向我解释一下吗? 提前致谢

拉​​斯

1 个答案:

答案 0 :(得分:0)

我们的想法是绑定重定向不会添加到源App.config,而是在构建期间生成,因此生成的Foo.exe.config应具有必要的绑定重定向,具体取决于依赖关系。< / p>

这由一个属性控制,该属性通常为使用PackageReference的项目自动设置:

<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>