Ich habe ein Konsolenprogramm 'A', das zu einem bestimmten Zeitpunkt Programm 'B' und Programm 'C' ausführen wird. Allerdings habe ich ein Problem mit der app.config-Verknüpfung mit jedem Programm. Grundsätzlich ist Programm A nur eine Wrapper-Klasse, die eine andere Konsolenanwendung aufruft. Sie sollte keine app.config haben, aber sie sollte die App-Konfiguration des aktuell laufenden Programms verwenden. Also in der Theorie sollte es nur 2 app.config eine für Programm B und eine andere für Programm C.C# Konfigurationsdatei in exe einbetten
Also, wenn wir Programm A und Programm B ausgeführt ausgeführt wird, sollte es Programm B's app.config verwenden, um die Informationen zu erhalten und Danach, wenn Programm C ausgeführt wird, sollte es App.config von Programm C verwenden.
Gibt es eine Möglichkeit, dies zu tun? Derzeit mache ich das:
var value = ConfigurationManager.OpenExeConfiguration(Assembly.GetExecutingAssembly().Location).AppSettings.Settings["ProgramBKey"].Value;
Es scheint nicht zu funktionieren. Ich überprüfte das debug auf Assembly.GetExecutingAssembly().Location
es ist Variable ist die \ bin \ Debug \ ProgramB.exe und "ConfigurationManager.OpenExeConfiguration (Assembly.GetExecutingAssembly(). Location) .AppSettings" hat Einstellung mit Count = 0, wenn Schlüsselwerte wie unten angezeigt werden.
Beispielcode Programm A:
static void Main(string[] args)
{
if(caseB)
B.Program.Main(args)
else if(caseC)
C.Program.Main(args)
}
Probe app.config für Programm B:
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="ProgramBKey" value="Works" />
</appSettings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
</startup>
</configuration>
Wie starten Sie diese anderen '.exe' Programme? – Adam
Sie sind alle Konsolenanwendung –
Also ein einfacher 'Applicaton.Run()' Anruf? – Adam