So greifen Sie auf eine binäre Ressource in einer C # -Anwendung zu

7

Ich versuche, eine leere Access-Datenbank (.mdb) als Ressource in meiner Anwendung zu speichern. Ich möchte dann das Dateisystem ausschreiben und mit Tabellendefinitionen usw. füllen. Das Problem, das ich in Visual Studio 2005 und meiner C # -Anwendung habe, besteht darin, nicht auf die Ressource zugreifen zu können, die in derselben Assembly gespeichert ist (die ich hätte gedacht, wäre standardmäßig erreichbar). Hier ist mein Code:

%Vor%

GetManifestResourceStream gibt NULL und gemäß der Dokumentation zurück, weil die Ressource privat sein muss (weil, auch wenn sie nicht existiert, ein Nicht-NULL-Wert zurückgegeben wird). Also meine Frage ist das:

Wie mache ich meine Ressource für meine eigene Anwendung zugänglich? Ich habe es bereits zum Projekt hinzugefügt und es übrigens als "eingebettete Ressource" markiert.

Danke!

    
Karim 07.04.2009, 14:07
quelle

3 Antworten

16

Sie müssen der "empty.mdb" den Standard-Namespace der Assembly voranstellen. Etwas wie:

%Vor%     
David M 07.04.2009, 14:09
quelle
9

Sie können auch die Namen Ihrer Ressourcen überprüfen, indem Sie

aufrufen %Vor%

Stellen Sie außerdem sicher, dass Ihre Datei "empty.mdb" bei der Kompilierungsaktion mit "Eingebettete Ressource" gekennzeichnet ist.

Alternativtext http://img520.imageshack.us/img520/6649/sinttuloo.png

    
quelle
1

Dies wird eine binäre eingebettete Ressourcendatei extrahieren ...

%Vor%

Dies ist sehr nützlich für C # Unit-Tests, die Datendateien erfordern, in denen Ihre DLLs normalerweise ohne vorhandene Inhaltsdateien ausgeführt werden (sie können in temporären Ordnern ausgeführt werden, die vom Komponententestframework erstellt wurden).

Dies hat ein anderes Code-Snippet für Textdateien (keine Binärdateien), obwohl es Speicherlecks haben kann, da es die using -Anweisung nicht verwenden konnte.

Tony O'Hagan 03.12.2014 00:58
quelle

Tags und Links