【问题标题】:Nuget - How to use configSource and Add-BindingRedirectNuget - 如何使用 configSource 和 Add-BindingRedirect
【发布时间】:2017-05-02 07:16:37
【问题描述】:

有没有办法将app.configassemblyBinding 元素移动到外部文件并在Visual Studio 的包管理器控制台中使用Add-BindingRedirect 对其进行更新?

这是我的外部文件:

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" />
  </dependentAssembly>
</assemblyBinding>

这是我引用该文件的 app.config 片段:

<runtime>
  <assemblyBinding configSource="runtime.config" />
</runtime>

这是在包管理器控制台中运行Add-BindingRedirect 后的app.config 文件:

<runtime>
  <assemblyBinding configSource="runtime.config" />
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>

【问题讨论】:

    标签: visual-studio nuget app-config


    【解决方案1】:

    我们无法在包管理器控制台中使用 Add-BindingRedirect 将元素添加到外部文件。因为 Add-BindingRedirect 用于检查项目输出路径中的所有程序集,并在必要时将绑定重定向添加到 app.configweb.config

    请参考 Add-BindingRedirect 的定义: http://docs.nuget.org/ndocs/tools/powershell-reference

    configSource 属性与外部配置文件一起使用,为项目添加一些配置。换句话说,它们是帮助我们实现绑定重定向的两种不同方式。所以我们不能混合使用它们。

    【讨论】:

    • 感谢您的澄清,尽管我不同意混合 Add-BindingRedirect 和 configSource 是不可能的论点。如果 nuget 只是遵循参考并更改了目标文件怎么办?
    • 如果您的项目中添加了不同版本的nuget引用,当您运行Add-BindingRedirect命令时,它会自动将重定向信息添加到您的app.config/web.config中。
    • 呃,我真的很想要这个功能。
    猜你喜欢
    • 2023-03-27
    • 1970-01-01
    • 2020-09-12
    • 2021-08-24
    • 1970-01-01
    • 2018-12-30
    • 2011-06-30
    • 1970-01-01
    • 2016-04-01
    相关资源
    最近更新 更多