Tom*_*rek 43 .net c# app-config nuget assembly-binding-redirect
我经常使用的VS解决方案包括一个可执行项目(控制台应用程序,Web应用程序)和许多可执行文件引用的类库项目.
在使用NuGet并安装软件包时,通常会app.config为每个项目创建一个文件,通常只包含合并重定向列表,这些重定向合并了引用程序集的版本.有时候会有一些特定于第三方库的内容(比如Entity Framework配置部分),但是现在让我们把它放在一边.
当我构建解决方案并使用主可执行项目的二进制文件时,我会看到构建输出中的所有类库项目程序集以及相应的*.config文件(app.config文件AssemblyName.config在构建时重命名为).
启动主可执行文件时,类库程序集的配置文件是否有效?或者只是app.config在这种情况下具有效果的可执行文件?如果在某些类库项目上设置了一些绑定重定向,并在主可执行项目上设置了一些不同的绑定重定向,这些如何组合,哪些优先?
我试图在网上研究这个,从我读过的内容来看,它看起来像app.config非可执行程序集的文件是无用的(关于绑定重定向).有人可以确认这一点或详细说明这个主题吗?
如果是这样的话,app.config如果它们只包含绑定重定向,那么实际上不希望NuGet在类库中创建这些文件吗?我觉得NuGet不应该为类库项目创建那些绑定重定向,因为它只会增加对实际应用的设置的混淆.
我在这个主题上发现了这些现有的Stack Overflow问题,但是他们接受的答案实际上是矛盾的,即使它们被标记为彼此重复.
第一个问题的接受答案提到app.config文件实际上是在编译时使用的,这意味着它们可能有效.像MSDN和MSBuild源代码这样的来源被引用作为它在编译时使用的证明.不幸的是,我对MSBuild的熟练程度不足以理解它是如何被使用的,以及它是否真的是一个有效的参数.
通常只有一个配置文件,那就是可执行文件的配置文件(.exe.config、web.config)。
任何程序集重定向都必须放置在可执行文件的配置文件中。
dll的配置文件需要使用ConfigurationManager类手动加载。另请参阅这个问题相当于库(DLL)的“app.config”
| 归档时间: |
|
| 查看次数: |
3416 次 |
| 最近记录: |