配置GAC放置的程序集。最佳实践

时间:2010-09-08 14:23:42

标签: .net configuration assemblies gac

我必须实现将放入GAC的.net程序集。它依赖于RDBMS连接字符串和一些额外的参数 - 我应该把它放在哪个最好的地方? Machine.config,注册表还是更合适的东西?

此类信息应放入使用组件的应用程序配置文件(app.config / web.config)中(如注意到的Marek Grzenkowicz),但如果应用程序配置由于某些原因而无法触及,该怎么办?

提前谢谢!

3 个答案:

答案 0 :(得分:3)

您应该将此类信息放入使用程序集的app.config / web.config应用程序文件中。这样就可以为每个这样的应用程序指定不同的设置。

答案 1 :(得分:2)

我认为这取决于您希望依赖程序集管理设置的程度。

注册表可以很好地满足一套一次不用考虑它的方法。使用注册表的缺点是缺乏对ADO.NET类中检索连接字符串的内置支持。

通过在应用程序的app.config或web.config中进行要求的设置,可以更好地满足这种可能不同的基于每个应用程序的方法。配置文件为许多与ADO.NET相关的类提供了内置连接字符串支持的额外好处。

我总是对修改machine.config有点怀疑。我无法解释为什么,除了设置是全局的。 machine.config中使用的每个连接字符串名称都是传播到其他配置的名称,必须使用,忽略或删除。它还使开发环境与生产同步变得复杂。也就是说,我不认为这些原因是避免machine.config的超级令人信服的理由。在做出决定之前,只需权衡权衡。

隔离存储中的自定义文件是另一种可行的选择,尽管它通常用于有限的信任环境中;由于GAC完全信任,隔离存储可能不是一个令人信服的选择。

答案 2 :(得分:1)

使用特定数据库的“组件”可能不应该首先在GAC中。

如果你真的需要这个,那么Connectionstring不是正常意义上的配置。您可能应该将其硬编码到您的程序集中。

请提醒我永远不要安装你的软件。