Eine globale Settings.xml datei (wie früher) für eine WPF Anwendung global bereitstellen. In dieser wird der Connectionstring zur Datenbank für alle beteiligten Assemblies bereitgestellt. Die Ablage in den App/Web.Config kommt aus diversen Gründen nicht in Frage da die Konfig...
- zur Laufzeit nicht verändert werden kann (Anwendungseinstellungen)
- beim compilieren überschrieben wird
- bei WPF die Config lokal zwischengespeichert wird
also die Datei einmalig erstellen und in der Assembly einfach den Anwedungspfad auslesen.
so etwa?
AppDomain.CurrentDomain.BaseDirectory
System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location)
System.Reflection.Assembly.GetExecutingAssembly().Location
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
System.Reflection.Assembly.GetExecutingAssembly().CodeBase
System.IO.Path.GetDirectoryName(System.Diagnostics.Process.GetCurrentProcess().
MainModule.FileName
leider kriegt man hier nur die lokalen temporären Pfade der Assemblies!
Mit Updatelocation kriegt man den Urpsrungspfad:
System.Deployment.Application.ApplicationDeployment. CurrentDeployment.UpdateLocation.ToString
Leider scheint Micrsosoft auch Auszubildende auf die Menschheit loszulassen, anders kann ich mir den Rückgabestring nicht zu erklären:
http:\wpfserver\apppath
also häng ich noch folgendes ran:
.Replace("\", "/").Replace("http:/", "http://")
und damit wird dann per linq to xml der Eintrag gelesen
Dim uriXML As Uri = New Uri(strdir & "/Settings.xml")Dim konf As XDocument = XDocument.Load(uriXML.ToString) Connectionsstring = (From ef In konf.Descendants("EF_Connectionstring")).FirstOrDefault.Value
: