我们有许多C#控制台应用程序在计划任务上运行。所有这些应用程序都有自己的配置文件,其中包含类似我们的smtp服务器的设置。如果我们的smtp服务器发生了变化,我们必须手动进入每个配置文件并进行更改。多个应用程序可以查看C:驱动器上的1个配置文件,还是被认为是不好的做法?使用数据库存储值是不行的。
答案 0 :(得分:15)
您可以指向应用程序配置文件中的外部配置文件,如下所示,并让所有应用程序在单个文件中使用相同的设置集:
<appSettings file="c:\CommonSettings.config">
<add key="MyKey" value="12"/>
</appSettings>
有关详细信息,请阅读以下文章:
答案 1 :(得分:3)
无法直接共享一个应用程序配置文件,因为.config
文件名需要与可执行文件名匹配(因此对于example.exe
,它将是example.exe.config
)。
为不同的应用程序提供单独的值是有意义的,因为它们是单独的应用程序。
如果您确实要共享配置部分,则可以使用configSource
属性指向文件。 appSettings
部分还有一个特定的file
属性,您可以使用相同的方式。
如果某些配置值 在所有应用程序中共享,您可以考虑将它们放在machine.config
文件中,以获取您正在使用的框架版本。
答案 2 :(得分:2)
您可以使用自定义xml文件来存储配置数据吗? 没有必要使用app.config。
答案 3 :(得分:0)
使用Cinchoo框架,您只需创建自定义配置对象并将其用于所有控制台应用程序即可实现此目的。所有这些都将从相同的配置文件中读取。有关详情,请访问http://www.cinchoo.com