[C#] probleme mit eingebetteten Ressourcen VS 2010

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Anno1503
Beiträge: 9
Registriert: 29.09.2008, 17:36

[C#] probleme mit eingebetteten Ressourcen VS 2010

Beitrag von Anno1503 »

Hallo auch ma wieder,
Ich bin jetzt schon seit 3 Tage am verzweifeln, bei Google hab ich mich schon totgesucht, doch zu einer Lösung kamm ich doch nie...

Ein lächerlicher 3 Tage versuch, eine einfache Textdatei in VS 2010 C# , in die Exe während der Laufzeit einzubinden...

Was ich möchte:

ICh möchte diese Textdatei während der Laufzeit, in der Exe lesen können,

So bin ich vorgegangen:

Erst habe ich einen Ordner(Texte) als Element hinzugefügt, dann
habe ich ein neues Element(Textdatei.txt), in mein Ordner hinzugefügt.
dann: http://support.microsoft.com/kb/319292/de

aus meinem Code:

Code: Alles auswählen

static void Main(string[] args)
{
Assembly _assembly;
                StreamReader _textStreamReader;
                _assembly = Assembly.GetExecutingAssembly();
                _textStreamReader = new StreamReader(_assembly.GetManifestResourceStream("ConsoleApplication1.Texte.Text.txt"));
}
Das problem dabei ist, das ich immer eine Fehlermeldung bekomme, die lautet:

Code: Alles auswählen

Der Wert darf nicht NULL sein.
Parametername: stream
ich habe schon alle möglichen Codes ausprobiert
nichts, immer das gleiche resultat.

Was kann ich da den noch tun?

währe für ein paar Antworten dankbar.

MFG
Anno1503
Benutzeravatar
Schrompf
Moderator
Beiträge: 4856
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: [C# probleme mit eingebetteten Ressourcen VS 2010]

Beitrag von Schrompf »

Ich kenne kein C#, aber meine Vermutung ist, dass _assembly.GetManifestResourceStream("ConsoleApplication1.Texte.Text.txt") eine NULL-Referenz zurückliefert. Vermutlich, weil der Resourcenname bzw. -pfad nicht korrekt ist. Schau nochmal in die Doku zu GetManifestResourceStream(), wie die Schreibweise ist und ob man da die Dateiendung mit angeben muss.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Seraph
Site Admin
Beiträge: 1174
Registriert: 18.04.2002, 21:53
Echter Name: Steffen Engel

Re: [C#] probleme mit eingebetteten Ressourcen VS 2010

Beitrag von Seraph »

Ist "ConsoleApplication1" der Haupt-Namespace? Wenn nicht, musst Du ihn noch hinzufuegen.
Anno1503
Beiträge: 9
Registriert: 29.09.2008, 17:36

Re: [C#] probleme mit eingebetteten Ressourcen VS 2010

Beitrag von Anno1503 »

nein, ist alles richtig gesetzt
Seraph
Site Admin
Beiträge: 1174
Registriert: 18.04.2002, 21:53
Echter Name: Steffen Engel

Re: [C#] probleme mit eingebetteten Ressourcen VS 2010

Beitrag von Seraph »

Mhm, sieht soweit richtig aus. Deine Datei "Text.txt" befindet sich in einem "Texte"-Verzeichnis welches sich im 'Root-Verzeichnis' deines Projekts befindet? Gross-/Kleinschreibung stimmt auch? Die Datei wurde auch zum Assembly hinzugefuegt und ist nicht leer?

Der einzige Hinweis aus der MSDN waere noch:

"Resource information is returned only if the resource is visible to the caller. This method returns a null reference (Nothing in Visual Basic) if a private resource in another assembly is accessed"


Ansonsten evtl. mit GetManifestResourceNames() mal schauen ob sie wirklich drin ist.
Seraph
Site Admin
Beiträge: 1174
Registriert: 18.04.2002, 21:53
Echter Name: Steffen Engel

Re: [C#] probleme mit eingebetteten Ressourcen VS 2010

Beitrag von Seraph »

Eine Sache noch, was hast Du als Build Action (s. Properties vom File) bei dem File eingestellt? Sollte 'Embedded Resource' sein.
Anno1503
Beiträge: 9
Registriert: 29.09.2008, 17:36

Re: [C#] probleme mit eingebetteten Ressourcen VS 2010

Beitrag von Anno1503 »

jop, die Textdatei ist als eingebette Ressource eingestellt.
Despotist
Establishment
Beiträge: 394
Registriert: 19.02.2008, 16:33

Re: [C#] probleme mit eingebetteten Ressourcen VS 2010

Beitrag von Despotist »

Wenn du das machst um den Pfad deiner Exe-Datei zu bestimmen versuch mal: TextReader FileReader = new StreamReader(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location) + filename);
using System.Reflection; einbinden.
Seraph
Site Admin
Beiträge: 1174
Registriert: 18.04.2002, 21:53
Echter Name: Steffen Engel

Re: [C#] probleme mit eingebetteten Ressourcen VS 2010

Beitrag von Seraph »

Habe eben mal kurz ein Test-Projekt mit VS2010 erstellt, genauso wie Du es hast. Bei der 'Text.txt' war default-maessig 'Content' als Build-Action eingestellt und es wurde mir der gleiche Fehler ausgegeben wie Du ihn hast. Nach dem Umstellen auf 'Embedded Resource' laeuft es problemlos.

Meine Code-Zeile:

Code: Alles auswählen

var sr = new StreamReader(Assembly.GetExecutingAssembly().GetManifestResourceStream("ConsoleApplication1.Texte.Text.txt"));
Nachtrag: Ich kann das Projekt auch hochladen und Du kannst vergleichen was der Unterschied zu deinem Projekt ist.
Anno1503
Beiträge: 9
Registriert: 29.09.2008, 17:36

Re: [C#] probleme mit eingebetteten Ressourcen VS 2010

Beitrag von Anno1503 »

Das ist ja recht merkwürdig, ich bin durch dich auf die Idee gekommen, nochmal ein neues ConsoleApplication , Projekt zu erstellen, und siehe da?. es funktioniert endlich!!!! :D

Kann mir das auch nicht so richtig erklären, aber anscheinend muss, das Project Irgendwie beschädigt gewesen sein, oder Visual Studio 2010 hatt nen klacks. :?
Naja auf jeden fall habe ich ja jetzt die Lösung herausgefunden. :D

Ich möchte mich an dieser stelle trotzdem nochmal recht herzlich für eure mühe Bedanken ;)



MFG
Anno1503
odenter
Establishment
Beiträge: 207
Registriert: 26.02.2009, 11:58

Re: [C#] probleme mit eingebetteten Ressourcen VS 2010

Beitrag von odenter »

Das Studio funktioniert in 98% der Fälle einwandfrei.
Bei mir verschwinden ab und an Event-Handler die ich nicht selbst per Code eingebaut habe, sondern über die Oberfläche. Sehr seltsam und nicht wirklich reproduzierbar. Also immer schön Sicherungen machen. :)
Anno1503
Beiträge: 9
Registriert: 29.09.2008, 17:36

Re: [C#] probleme mit eingebetteten Ressourcen VS 2010

Beitrag von Anno1503 »

hmm, das hört sich ja mal gar nicht schön an.
Ich hoffe doch mal das es mal nen Servicepack für VS 2010 gibt.

MFG
Anno1503
Tactive
Beiträge: 61
Registriert: 21.07.2004, 15:10
Kontaktdaten:

Re: [C#] probleme mit eingebetteten Ressourcen VS 2010

Beitrag von Tactive »

Hmm, ich nutze jetzt das VS2010 seit einigen Woche, beruflich wie auch Privat aber kann die von Euch augeführten Problem nicht nachvollziehen. Weder gehen da Events-Verloren, noch gibt es Probleme beim Zugriff auf eingebettete Resourcen. Ich musste mich zwar erst an das VS2010 gewöhnen aber jetzt möchte ich es nicht mehr missen. Kann Euch auch nur empfehlen das VS 2010 Productivity Pack herunterzuladen, sind coole Features dabei (könnt Ihr über den Extension Manager installieren).

Und für C/C++ geht natürlich kein Weg am Visual Assist X vorbei, aber naja - einmal Visual Assit, immer Visual Assist ...... ;)
Benutzeravatar
Spyke
Beiträge: 18
Registriert: 11.06.2003, 15:46
Wohnort: Bayern
Kontaktdaten:

Re: [C#] probleme mit eingebetteten Ressourcen VS 2010

Beitrag von Spyke »

- Unter 64bit Win werden gerne mal die ImageList Ressourcen verhauen so das sich Designer nicht mehr öffnen lässt.
- DebuggerDisplay verursacht debugger abstürz bei Verwendung von "{base.Eigenschaft}".
- Designerprobleme bei mehreren Projekten in einer Solution die alle eigene Ressourcedatei haben
- Manchmal geht die SourceSafe Bindung für einzelne Dateien verloren (könnt aber auch mit Konvertierung nach VS10 zu tun gehabt haben)

Das is mir jetzt spontan eingefallen.
Aber sonst arbeite ich eigentlich gern mit VS10 :D
odenter
Establishment
Beiträge: 207
Registriert: 26.02.2009, 11:58

Re: [C#] probleme mit eingebetteten Ressourcen VS 2010

Beitrag von odenter »

Habe auch ein 64 Bit Windows, hängt vielleicht tatsächlich damit zusammen.
Benutzeravatar
Spyke
Beiträge: 18
Registriert: 11.06.2003, 15:46
Wohnort: Bayern
Kontaktdaten:

Re: [C#] probleme mit eingebetteten Ressourcen VS 2010

Beitrag von Spyke »

Ich selbst arbeite zum Glück auf Arbeit noch mit XP, dadurch kann ich die Probleme beheben.
(Tratt bisher bei 2 Kollegen auf)
Abhilfe schaft einfach die Bilder zur Laufzeit der ImageList hinzuzufügen.
Bei der normales resx Datei eines Projektes hat er diesbezüglich keine Probleme.

Das komisch bei dem Fehler ist eher das er erstmal irgendwelche Referenzen anmeckert und man erstmal ne Stunde im falschem Bereich sucht.

Nachtrag: Trotz SourceSafe Anbindung wurde die resx des Controls/Formulars nicht mal ausgecheckt und dennoch geändert.
Antworten