【发布时间】:2016-09-13 09:13:23
【问题描述】:
使用 Visual Studio 发布我的 asp 核心项目时,会在我的可执行文件旁边创建一个 .config 文件。
.config 包括几个bindingRedirect,如下所示:
<?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="6.0.0.0" newVersion="8.0.0.0" />
<bindingRedirect oldVersion="7.0.0.0" newVersion="8.0.0.0" />
<bindingRedirect oldVersion="6.0.0.0" newVersion="9.0.0.0" />
<bindingRedirect oldVersion="8.0.0.0" newVersion="9.0.0.0" />
<bindingRedirect oldVersion="7.0.0.0" newVersion="9.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Serilog" publicKeyToken="24c2f752a8e58a10" culture="neutral" />
<bindingRedirect oldVersion="1.5.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="1.1.37.0" newVersion="1.2.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Reflection.Metadata" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="1.2.0.0" newVersion="1.3.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
这里我想将bindingRedirect 的Newtonsoft.Json 改为:
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" />
</dependentAssembly>
根据这篇博文:http://blog.rytmis.net/2016/03/29/asp-net-core-and-assembly-binding-redirects/ 我应该能够创建一个App.config 并在那里指定绑定。但是,我无法让它工作。当我添加一个时,它仍然会产生相同的.config。
有什么想法吗?
注意:我可以在我的项目中创建一个.config 文件,该文件与我的可执行文件同名并使用正确的bindingRedirect,然后在我的project.json 文件中编辑publishOptions包括它。然后我必须手动添加所有其他未来的bindingredirect。
【问题讨论】:
标签: asp.net-core dotnet-cli assembly-binding-redirect