Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
App.config und *.exe in unterschiedlichen Ordnern
oehrle
myCSharp.de - Member



Dabei seit:
Beiträge: 428
Herkunft: Germany

Themenstarter:

App.config und *.exe in unterschiedlichen Ordnern

beantworten | zitieren | melden

Hallo, unter den WinFOrms war es möglich, die application.exe.config in einem anderen Verzeichnis zu deponieren, als die ausführbare *.exe - Datei.

Wie macht man das in WPF, oder besser gesagt geht das noch? Hat jemand einen Link dazu? Im FOrum habe ich dazu noch nichts gefunden. Bei WPF habe ich schon mal das Problem, wo ich den Änderungscode rein schreiben soll (bei WinForms war das bei "Program.cs").
private Nachricht | Beiträge des Benutzers
oehrle
myCSharp.de - Member



Dabei seit:
Beiträge: 428
Herkunft: Germany

Themenstarter:

Weitere Erklärung

beantworten | zitieren | melden

Hallo, bis jetzt hat noch keiner etwas dazu gewußt. Ich erkläre noch etwas zu dem Problem.
Die Applikation läuft auf verschiedenen Maschinen. Viele Maschinen haben eine unterschiedliche Ornerstrukturen auf ihren Platten, wo Daten abelegt werden (was natürlich "SCh****" ist ich weiss) aber ich kann das System nicht rumkrempeln. Deswegen hatte ich das für diese WinForm-Applikation so gemacht. Alle Maschinen sind auf die ausführbare EXE-Datei gelinkt (Desktop--Link). Damit aber bei jeder Maschine individuell die Verzeichnisse in der application.config eingestellt weren können, mußte diese in ein anderes Verzeichnis als die ausführbare EXE-Datei (diese liegt ja auf dem Netzlaufwerk). Somit habe ich es so gemacht, dass sie ".exe.config" auf der Maschine in einem fest definierten Ordner leigt, der bei allen Maschinen gleich sein muss. So habe ich nicht das Problem, das beim generieren einer neuen EXE-Datei an allen Maschinen die Pfade in der ".exe.config" angepasst werden müssen. Das zu meinem PRoblem. Da ich mittlerweile mit WPF arbeite , habe ich nun keine Ahnung wie ich das bei WPF verbiegen kann. hat jemand eine andere Idee?
private Nachricht | Beiträge des Benutzers
ujr
myCSharp.de - Experte



Dabei seit:
Beiträge: 1.688

beantworten | zitieren | melden

Zitat von oehrle
bis jetzt hat noch keiner etwas dazu gewußt

Nun ja - so lang ist's ja noch nicht her - s. dazu [Hinweis] Wie poste ich richtig? 7.
Willst Du etwas ergänzen, so ist es sinnvoller, solange es keine Antwort gegeben hat, den Ausgangspost zu editieren.

Zum Thema: Wie hast Du das bei Windows Forms gemacht und was funktioniert bei WPF nicht mehr? Die Handhabung der app.config ist an sich unabhängig von der GUI-Technologie.
private Nachricht | Beiträge des Benutzers
oehrle
myCSharp.de - Member



Dabei seit:
Beiträge: 428
Herkunft: Germany

Themenstarter:

Beispiel bei WinForm

beantworten | zitieren | melden

Hallo ujr, hier mal ein Beispiel. Der Code wird in der program.cs eingesetzt.


string programmPfad = null;

//// Name der gestarteten Applikatioin auslesen, Suffix mit "." abschneiden
string name = Path.GetFileName(Application.ExecutablePath);
name = name.Remove(name.Length - 4);

//// Pfad festlegen, wo die .exe.config liegt
programmPfad = @"c:\Programme\MeineApplikation + "\\";
//// Name für .exe.config festlegen
string nameConfigFile = name  + ".exe.config";

//// Pfad für die app.config auf anderen Ort und anderen Namen (Namespace.exe.config) umbiegen
AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", programmPfad + nameConfigFile);

Nun eben das Problem wie ich das bei WPF mache. Ich brauche dort den Startpfad, sowie die AppDomain, die man so nicht beschreiben kann wie bei WinForm. Da bauch ich Hilfe.
private Nachricht | Beiträge des Benutzers
ujr
myCSharp.de - Experte



Dabei seit:
Beiträge: 1.688

beantworten | zitieren | melden

Hallo,

s. z. B. [FAQ] Pfad zur eigenen Anwendung (EXE) ermitteln
Probier mal Deinen Code in App.xaml.cs zu schreiben.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von ujr am .
private Nachricht | Beiträge des Benutzers
oehrle
myCSharp.de - Member



Dabei seit:
Beiträge: 428
Herkunft: Germany

Themenstarter:

AppDomain.SetData geht nicht ...

beantworten | zitieren | melden

Halli ujr. den Pfad kann ich abrufen, aber kann den hier nicht setzen:

AppDomain.SetData("APP_CONFIG_FILE", programmPfad + nameConfigFile);

Trage das mal in die app.xaml.cs ein. DAnn siehst, das .SetData nicht existiert.
private Nachricht | Beiträge des Benutzers
ujr
myCSharp.de - Experte



Dabei seit:
Beiträge: 1.688

beantworten | zitieren | melden

Hallo,

natürlich darfst Du das nicht direkt in die Klasse schreiben!

Mit

<Application
             ...
             Startup="Application_Startup"
             StartupUri="MainWindow.xaml">
  ...
</Application>

bekommst Du aber einen "Einsprungpunkt":


public partial class App : Application
    {
        private void Application_Startup(object sender, StartupEventArgs e)
        {
            AppDomain.CurrentDomain.SetData...
        }
    }
private Nachricht | Beiträge des Benutzers
oehrle
myCSharp.de - Member



Dabei seit:
Beiträge: 428
Herkunft: Germany

Themenstarter:

[erledigt]App.config

beantworten | zitieren | melden

ujr, danke für die Hilfe, hat geklappt.
private Nachricht | Beiträge des Benutzers