9

使用 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>

在这里,我想将 for 更改bindingRedirectNewtonsoft.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,然后publishOptions在我的project.json文件中编辑以包含它。然后我必须手动添加所有其他的 future bindingredirect

4

1 回答 1

0

您需要创建一个 web.config 转换文件。

这个答案会派上用场,因为自己添加它并不容易 - https://stackoverflow.com/a/16826106/1147920

您也可以通过创建 web.config 文件的副本并将其重命名为 web.release.config 或 web.{PublishProfile}.config(如果您正在使用)来手动执行此操作。

要编写转换规则以编辑 bindingRedirect,请参阅官方文档 - https://docs.microsoft.com/en-us/aspnet/web-forms/overview/deployment/visual-studio-web-deployment/web-config - 转换

于 2018-04-18T19:01:14.290 回答