私はコンソールプログラム 'A'を持っており、ある時点でプログラム 'B'とプログラム 'C'を実行します。しかし、私はapp.configの各プログラムとの関連付けに問題があります。基本的にプログラムAは、別のコンソールアプリケーションを呼び出すラッパークラスです。app.configはありませんが、現在実行中のプログラムのapp configを使用する必要があります。だから理論的には、プログラムBとプログラムCの2つのapp.configのみが必要です。c#exe内の埋め込み設定ファイル
プログラム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:プログラムBのための
static void Main(string[] args)
{
if(caseB)
B.Program.Main(args)
else if(caseC)
C.Program.Main(args)
}
サンプルの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'プログラムはどうやって起動していますか? – Adam
これらはすべてコンソールアプリケーションです –
単純な 'Applicaton.Run()'コールですか? – Adam