2010-06-07 9 views
5

Ich habe ein .NET CF-Projekt. Im Projektverzeichnis habe ich eine einfache XML-Datei (users.xml) abgelegt, die vom Gerät gelesen werden muss. Wenn ich die Anwendung auf dem Geräteemulator debugge und versuche, die Datei aus Code zu laden, wird die Ausnahme ausgelöst (FileNotFoundException "Could not find file '\\users.xml'.")..NET kompaktes Framework - wo Dateien abgelegt werden, so dass sie für den Emulator zugänglich sind

Gibt es einen Mechanismus zur automatischen Bereitstellung von Konfigurationsdateien auf einem Geräteemulator?

+0

Sie könnten in Betracht ziehen, eine eingebettete Ressource zu verwenden http://bit.ly/cFuYOc http://bit.ly/a8DXOl – slf

+0

Was Visual Studio tun Sie verwenden? – Shaihi

+0

Visual Studio 2005 – cubesoft

Antwort

2

Sie haben Sie Pfad im Code falsch eingestellt. Nachdem Sie die Anweisungen von Shaihi oder Sphynx befolgt haben, um Studio dazu zu bringen, die Datei bereitzustellen, befindet sich die Datei in dem Ordner mit der Anwendung.

Basierend auf der Tatsache, dass Sie einen Fehler bekommen, dass es nicht finden kann "\ users.xml" sagt mir, dass Sie entweder sagen, dass es speziell im Stammordner suchen oder Sie haben keinen Ordner angegeben.

Windows CE erfordert, dass Sie einen vollständig qualifizierten Pfad angeben. Daher sollte Ihre Anwendung entweder den vollständigen Pfad verwenden, für den sie bereitgestellt wird (z. B. "\ Programme \ MyApp \ users.xml") oder Sie müssen den Pfad erstellen :

Path.Combine(
    Path.GetDirectoryName(
    Assembly.GetExecutingAssembly().GetName().CodeBase 
), "users.xml"); 
+0

Path.Combine (...) gibt in meinem Fall die '\\ MyExe.exe \\ users.xml' \t und die System.IO.DirectoryNotFoundException wird ausgelöst. Was ist falsch? – cubesoft

+0

bah, das ist was Ich bekomme, um meinen Code nicht zu überprüfen - ich habe es in der Antwort aktualisiert – ctacke

0

Sie können versuchen, die Datei zu Ihrer Anwendung hinzuzufügen, "Build Action" auf Inhalt zu setzen und "Copy to Output Directory" zu aktivieren. Außerdem glaube ich, dass es eine Option in den Emulatoreinstellungen gibt, die das Freigeben von Dateien zwischen dem Emulator und dem Host-Betriebssystem ermöglicht.

+0

Die "Build-Aktion" auf Inhalt festgelegt und "nach out dir" kopieren funktioniert nicht. Ich kann in "Ausgabefenster" sehen, dass die Dateien bereitgestellt werden, aber wenn ich versuche, die Datei FileNotFoundException zu laden geworfen wird. – cubesoft

2

Hier ist, wie es in VS2005 zu tun. Es stellt die Datei zusammen mit dem Projekt bereit.
Dies ist für eine native Anwendung - es sollte für einen verwalteten ähnlich sein.

Content Feld gibt an, ob die Datei auf dem Ziel bereitgestellt werden soll. Die Datei wird im selben Verzeichnis wie die Anwendung bereitgestellt. Ich bin mir nicht sicher, wie VS2005 die Bereitstellung behandelt, falls Sie die Datei aktualisiert haben, was bedeutet, dass Sie sie möglicherweise manuell auf dem Gerät löschen müssen.

VS2005 http://www.freeimagehosting.net/uploads/255e2922df.jpg

0

zu File->Configuration auf dem Emulator gehen und ein Verzeichnis von PC teilen. Dieses Verzeichnis wird zu Ihrer Speicherkarte. Wenn Sie also eine Datei wie test.csv hinzufügen, können Sie sie im Programm von "Storage Card \ test.csv" lesen. (Ich benutze VS2008 und Windows Mobile 5.0 Pocket PC RC 2 Emulator.