4

我编写了一个控制台应用程序 ( app.exe),它在配置文件 ( app.exe.config) 中有设置。

我需要在配置文件中使用不同的设置多次运行它。

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

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

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

设置示例如下:

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

这可能吗?有没有更好的办法?

4

1 回答 1

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 和 .xml 的使用仅用于示例目的 - 使用适合您的)

这有以下好处:

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