Laden...

[gelöst] Projektdatei als Resource mitgeben

Erstellt von Cuin vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.232 Views
C
Cuin Themenstarter:in
92 Beiträge seit 2010
vor 13 Jahren
[gelöst] Projektdatei als Resource mitgeben

Hallo alle Zusammen,

ich habe folgendes Problem:

In meiner Projektmappe habe ich dort, wo auch alle anderen CS-Files liegen eine XML-Datei erstellt. Sie enthält einige Daten, die ich für den ablauf meines Programmes benötige. Ich möchte nun den Inhalt dieser Datei zur Laufzeit laden. In etwa so:

XmlDocument xml = new XmlDocument();
xml.Load("Config.xml");

Leider sucht VS dieses Dokument im bin/Debug Ordner, es soll aber als Resource mitgegeben werden (ähnlich wie Bilder oder icons, die man als Resource mitgeben kann). Ich möchte auch nicht, dass der Anwender mein Programm erst installieren muss, sondern die .exe-Datei ausreicht und keine weiteren dateien mitgeliefert werden müssen.

Ich habe schon versucht meine xml-datei als resource zu definieren, dass hatte aber leider keinen erfolg... hat jemand eine Idee wie ich das realisieren könnte?

mfg Cuin

6.911 Beiträge seit 2009
vor 13 Jahren

Hallo,

du kannst unter den Dateieigenschaften bei Build-Action Embedded Resource einstellen oder in der vom Designer generierten Ressourcen-Datei das XML als Text hinterlegen.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

C
Cuin Themenstarter:in
92 Beiträge seit 2010
vor 13 Jahren

Hallo gfoidl,

ich habe jetzt mal die datai aus dem Resourcenmanager gelöscht und so wie du gesagt hattest die build-action der file auf "eingebettet resource" gestellt. Wenn ich jetzt das programm starte, dann findet er die datei leider nicht, wenn ich aber die Einstellung: "InAusgabeverzeichniskopieren" auf "immer" einstelle, dann findet er die datei, aber dann habe ich neben meiner exe auch noch meine xml-datei liegen, was ich nicht so gut finde...

Und wenn ich mein xml-datei als txt datei hinterlege, dann habe ich das selber problem, also dass VS die datei dann in bin/debug sucht...

Gibts da noch eine möglichkeit oder mache ich was falsch?

mfg Cuin

6.911 Beiträge seit 2009
vor 13 Jahren

Hallo,

der Zugriff auf eingebettete Ressourcen erfolgt ja dann auch über Assembly.GetManifestResourceStream.

Bei Properties.Resources (also mit dem Designer) kann das XML als string eingebettet werden und das ist vllt. einfacher zu handhaben.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

C
Cuin Themenstarter:in
92 Beiträge seit 2010
vor 13 Jahren

Hallo gfoidl,

vielen vielen Dank für deine Tipps^^

Ich habe es jetzt hingekriegt:

Assembly _assembly;
Stream _ConfigStream;

_assembly = Assembly.GetExecutingAssembly();                    
_ConfigStream = _assembly.GetManifestResourceStream("myNamespace.Config.xml");

 xml.Load(_ConfigStream);

Diese Seite erklärt ziemlich gut wie es geht (wenn auch sehr schlecht übersetzt):

http://support.microsoft.com/kb/319292/de