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

时间:2014-02-15 09:04:31

标签: c# nuget app-config base-class-library

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

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

1 个答案:

答案 0 :(得分:8)

您可以参考这个问题:

Why NuGet adds app.config with assemblyBinding to LIBRARY projects during a NuGet package update?

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

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