为什么 visual studio 为程序集重定向创建 app.configs?
Why is visual studio creating app.configs for assembly redirection?
我有一个包含大约 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 这样做,我怎样才能让它停止?
通常 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。在这种情况下,如果您省略此绑定重定向,您将在运行时出现异常。
如果您的应用中没有此类依赖项,您可以删除这些配置。
我有一个包含大约 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 这样做,我怎样才能让它停止?
通常 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。在这种情况下,如果您省略此绑定重定向,您将在运行时出现异常。
如果您的应用中没有此类依赖项,您可以删除这些配置。