为了账号安全,请及时绑定邮箱和手机立即绑定

为什么visual studio为程序集重定向创建app.configs?

为什么visual studio为程序集重定向创建app.configs?

C#
慕容3067478 2021-09-19 15:33:08
我有一个包含大约 100 个项目的解决方案。我不知道究竟是什么触发了它,但 Visual Studio 偶尔会向我的每个项目添加一个 app.config。它通常看起来像这样:<?xml version="1.0" encoding="utf-8"?><configuration>  <runtime>    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">      <dependentAssembly>        <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />        <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />      </dependentAssembly>      <dependentAssembly>        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />        <bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="11.0.0.0" />      </dependentAssembly>    </assemblyBinding>  </runtime></configuration>据我所知,不需要这些 app.config 文件。如果我恢复所有这些更改并删除 app.config 文件,一切似乎都正常。为什么 Visual Studio 这样做,我怎样才能让它停止?
查看完整描述

1 回答

?
冉冉说

TA贡献1877条经验 获得超1个赞

通常 VS 会在您更新 nuget 包时添加这些配置(绑定重定向)。它有助于防止 .NET 在寻找依赖项时出现一些问题,例如


  <dependentAssembly>

    <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />

    <bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="11.0.0.0" />

  </dependentAssembly>

在此配置中,我们谈到如果您的应用程序的其他一些依赖项引用了版本低于 11.0.0.0 的程序集,则它们应该使用版本 11.0.0.0。在这种情况下,如果您省略此绑定重定向,您将在运行时出现异常。


如果您的应用程序中没有此类依赖项,则可以删除这些配置。


查看完整回答
反对 回复 2021-09-19
  • 1 回答
  • 0 关注
  • 205 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信