| 

.NET C# Java Javascript Exception

2
Hallo habe ein Problem wie ich den XML Pfad mitgebe als Relativer Pfad Angabe und die XML muss noch beim Kompilieren bzw. Installieren mitgenommen werden. So das dies auf jeden PC Installation funktioniert.

CODE:

Private Sub butLogin_Click(sender As Object, e As EventArgs) Handles butLogin.Click
'JMS PL User und Passwort in Textboxen eintragen - TM 31.08.2018
Dim doc As New System.Xml.XmlDocument()
'doc.Load("C:\Users\Anwender\Documents\Visual Studio 2013\Projects\BackupRestoreSQL\backup_database\XMLSQL.xml")
doc.Load(".\XMLSQL.xml")

If doc.GetElementsByTagName("Benutzer")(0) IsNot Nothing Then
txtuser.Text = doc.GetElementsByTagName("Benutzer")(0).InnerText
If doc.GetElementsByTagName("Passwort")(0) IsNot Nothing Then
txtpassword.Text = doc.GetElementsByTagName("Passwort")(0).InnerText
End If
End If

End Sub

Gruss Thomas Meier
31.08.2018
tsmeier 51 1 3
5 Antworten
0
Die einfachste Möglichkeit ist die Nutzung der app.config für Konfigurationseinstellungen einer Anwendung. Der Inhalt kann zur Laufzeit ausgelesen und verarbeitet werden. Dies wird von VS direkt unterstützt.

Sie können auch eine eigene XML-Datei nutzen. Dann ist i.a. ein etwas größerer Aufwand notwendig. Als Ablageort ist dann das Anwendungsverzeichnis zu empfehlen, wenn zentrale Einstellungen verwaltet werden sollen. Hier muss das Installationsprogramm für die Verteilung sorgen. Wenn Einstellungen nutzerspezifisch sein sollen, dann empfiehlt sich das Nutzerverzeichnis zusammen mit der Installation unter Alle Nutzer für einen Fallback.

Vielleicht hilft dies schon weiter.
31.08.2018
edvservice 1,4k 1 6
0
Folgendes könnte man machen...
Projekt:
Vorhandenes Element hinzufügen
Wird auch so angelegt aber bei Veröffentlichen sucht er in der AppData/local

Aber jetzt gibt unter der der Projektmappe eine Eigenschaft

Buildvorgang:
Was muss ich da einstellen damit die XML Datei gefunden wird!!!

Inhalt
Eingebettete Resourcen…

Gruss Thomas Meier
31.08.2018
tsmeier 51 1 3
0
Noch ein Hinweis:

Möchte das hier die XML Datei abgelegt wird!

C:\Users\Anwender\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\backup_database
da liegt auch die EXE Datei

Gruss
Thomas Meier
31.08.2018
tsmeier 51 1 3
0
Verwenden Sie ein separates Installationsprogramm zur Verteilung der EXE?
Wenn die XML-Datei in das EXE-Verzeichnis gehört, dann sollte doch ein Postbuild-Script genügen, das die Datei von Entwicklerverzeichnis in das Auslieferungsverzeichnis koppiert, ala:
xcopy "$(ProjectDir)*.xml" "$(ProjectDir)\..\Install" /S /E /Y
xcopy "$(TargetPath)" "$(ProjectDir)\..\Install" /S /E /Y

Das ist die Möglichkeit, die wir im Postbuild verwenden. Alle Ergebnisse der Kompilation werden in einem Install-Verzeichnis gesammelt und von da aus mit einem Installationsprogramm installiert.
31.08.2018
edvservice 1,4k 1 6
0
Danke für die Antwort...

Hab mir das nochmals angesehen und ich glaube es geht so => (da liegen auch die DLLs)

1. XML file hinzufügen dem Projekt
2. Projekt Eigenschaften => Veröffentlichen
3. Button: Anwendungsdateien
4. XML > Einschließen > Erforderlich > Einschlißen
5. Ok

Jetzt sollte es gehen

Private Sub butLogin_Click(sender As Object, e As EventArgs) Handles butLogin.Click
'JMS PL User und Passwort in Textboxen eintragen - TM 31.08.2018
'### objXML.Load(App.Path & "\demo.xml")
Dim doc As New System.Xml.XmlDocument()

'### XML Pfad geht aber wie mitgeben Installationsdatei!!!! Dann wie auslesen.
'doc.Load("C:\Users\Anwender\Documents\Visual Studio 2013\Projects\BackupRestoreSQL_youtube\backup_database\XMLSQL.xml")
'doc.Load(Application.StartupPath & ".\XMLSQL.xml")
doc.Load(Application.StartupPath & ".\XMLSQL.xml")

If doc.GetElementsByTagName("Benutzer")(0) IsNot Nothing Then
txtuser.Text = doc.GetElementsByTagName("Benutzer")(0).InnerText
If doc.GetElementsByTagName("Passwort")(0) IsNot Nothing Then
txtpassword.Text = doc.GetElementsByTagName("Passwort")(0).InnerText
End If
End If

End Sub

Gruss
Thomas Meier
02.09.2018
tsmeier 51 1 3

Stelle deine Xml-Frage jetzt!