是否需要bindingRedirect .config文件或应用程序中的所有程序集?

使用NuGet为具有多个dll和一个exe的解决方案安装Microsoft.Bcl.Async包,该解决方案使用所有其他dll,NuGet自动为每个项目创建一个.config文件(或添加到现有文件)Bcl包被添加到。

在实践中,我最终得到> 20个包含相同重定向的配置文件。 我理解重定向是必需的 ,但这实际上是所有程序集所必需的,因为它们都由一个应用程序加载(如果重要的话,其中一些是由Prism加载的)? 我从输出目录中删除了所有.config文件,只留下了app.config,应用程序似乎工作正常。 我的假设是正确的,一旦bindingRedirect在启动应用程序时生效,加载到该域的所有其他程序集也会自动使用重定向吗? 或者有任何警告吗? 我问的主要原因是要知道在重新分发应用程序时是否应该包含所有这些配置文件。

你可以参考这个问题:

为什么NuGet在NuGet包更新期间将app.config与assemblyBinding一起添加到LIBRARY项目?

我认为上述问题的答案足以回答你的疑问。

不过,如果你想要摘要,你实际上是对的。 您只需在一个应用程序中使用一个.config文件。 当您仅使用/引用相应的程序集时,将在测试中使用每个程序集.config文件。 因此,如果要部署应用程序,则不需要每个程序集.config文件。 应用程序范围的.config文件就足够了。