【发布时间】:2016-11-08 15:18:54
【问题描述】:
我有一个控制台程序“A”,它将在给定点运行程序“B”和程序“C”。但是,我遇到了与每个程序关联的 app.config 的问题。基本上程序A只是一个调用不同控制台应用程序的包装类,它不应该有任何app.config,但它应该使用当前正在运行的程序的应用程序配置。所以理论上应该只有2个app.config,一个用于程序B,另一个用于程序C。
所以如果我们运行程序 A 并且程序 B 被执行,它应该使用程序 B 的 app.config 来获取信息,并且当程序 C 执行后它应该使用程序 C 的 app.config。
有没有办法做到这一点?目前我正在这样做:
var value = ConfigurationManager.OpenExeConfiguration(Assembly.GetExecutingAssembly().Location).AppSettings.Settings["ProgramBKey"].Value;
它似乎不起作用。我检查了Assembly.GetExecutingAssembly().Location 上的调试,它的变量是 \bin\Debug\ProgramB.exe 和 'ConfigurationManager.OpenExeConfiguration(Assembly.GetExecutingAssembly().Location).AppSettings' 当有键值时设置为 Count=0下面。
示例代码程序A:
static void Main(string[] args)
{
if(caseB)
B.Program.Main(args)
else if(caseC)
C.Program.Main(args)
}
程序 B 的示例 app.config:
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="ProgramBKey" value="Works" />
</appSettings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
</startup>
</configuration>
【问题讨论】:
-
您如何启动这些其他
.exe程序? -
都是控制台应用
-
这么简单的
Applicaton.Run()电话? -
我不需要在同一目录中的 app.config 文件吗?目前我只是从程序 A 调用 main 方法
-
这就是我要问的,复制粘贴你如何从program1打开program2的代码行。
标签: c# console-application app-config