使用不同的配置文件多次运行控制台应用程序

时间:2013-08-15 11:26:18

标签: c# console-application

我编写了一个控制台应用程序(app.exe),其中包含配置文件(app.exe.config)中的设置。

我需要在配置文件中使用differentnet设置多次运行。

我现在使用的非常不合理的解决方案是重命名app1.exeapp1.exe.config等,然后为每个应用安排一个单独的任务,以便它在早上运行。

我想要做的是拥有一个引用不同配置的主配置,然后只有一个app.exe master.app.exe.config,然后运行app.exe的次数与主配置中的引用一样多。< / p>

我不想在代码中执行此操作,因为我想向用户解释如何维护配置文件,就是这样......

设置示例如下:

<!-- datstr ="" => current date, datstr="yyyymmdd" => 
            specific date, datstr ="yyyymmdd,yyyymmdd, 
           etc" => multidate, DONT USE "yyyymmdd","yyyymmdd" -->
<add key="datstr" value=""/>

这可能吗?有更好的方法吗?

1 个答案:

答案 0 :(得分:4)

据我所知,我相信你没有最好的架构来完成你想做的工作。

我建议从app.exe.config文件中提取特定于实例的配置,并将其移动到单独的实例特定配置文件中。然后通过命令行开关加载正确的配置文件。

而不是

app1.exe (and app1.exe.config)
app2.exe (and app2.exe.config)
app3.exe (and app3.exe.config)

你最终得到:

app.exe (app.exe.config)
instance1.xml
instance2.xml
instance3.xml 

并通过以下方式运行它们(例如)

app.exe -c instance1.xml
app.exe -c instance2.xml
app.exe -c instance3.xml

(注意使用-c和。仅用于示例目的 - 使用适合您的方法)

这有以下好处:

  1. 然后可以将调度留给Windows任务调度程序。
  2. 用户可以更轻松地编辑和测试不同的配置文件等。
  3. 用户不会编辑您的app.config文件,因此可以更好地防止意外更改。
  4. 您只需要提供有关编辑实例特定文件的详细说明(如果您不记录app.config文件,我会讨厌您;-))