2009-04-28 16 views
2

Ich habe eine Reihe von Ressourcendateien (resx) erstellt, die sprachspezifische Zeichenfolgedaten enthalten. Nach verschiedenen Tutorials habe ich die Basisressourcendatei (MyResources.resx) im Stammordner der Lösung und andere nachfolgende Ressourcendateien, zB (MyResources.en-AU.resx), nebeneinander in der Lösung platziert. Bei all dem funktioniert alles gut, bis ich im Solution Explorer beispielsweise einen Ordner namens "Culture" anlege und dann eine oder alle Ressourcendateien in diesen Ordner verschiebe. Nachdem ich dies getan habe, bekomme ich eine MissingManifestResourceException. Sobald ich sie zurück in den Stammordner des Solution Explorers bringe, keine Probleme.C# Ressourcendateien im Unterordner "Lösung" verursachen MissingManifestResourceException

Kann mir jemand erklären, was hier vor sich geht? Wie kann ich diese Ressourcendateien von der Stammlösung entfernen?

Grüße

Antwort

4

Wenn Sie sagen, Sie die Ressourcendateien bewegt, tun Sie meinen Sie sie auf das Dateisystem manuell bewegt? Wenn dies der Fall ist, kann das Build-Tool die Dateien offensichtlich nicht finden, da sie immer noch auf ihre "alten" Orte verweisen. Versuchen Sie, die Ressourcendatei aus dem Projekt zu entfernen und dann "Vorhandenes Element hinzufügen" und fügen Sie sie zurück. Vergessen Sie nicht, alles zu sichern, bevor Sie es versuchen, natürlich ...

Edit: Wenn Sie eine Datei in einen Ordner zu verschieben, dass Ordnernamen Teil des Namespace wird. So zum Beispiel, wenn Sie eine Ressource-Datei hatte Resource1 genannt, und Sie Zugriff auf sie durch Resource1.String1, nachdem er bewegt in „Ordner“ es würde Folder.Resource1.String1

+0

no i bewegt sie innerhalb VStudio. Hinweis: Die Lösung wurde immer unabhängig vom Speicherort der Ressourcendatei erstellt. Das Problem bestand darin, auf die Zeichenfolgedaten zuzugreifen. – Grant

+0

Haben Sie daran gedacht, den Namespace, auf den Sie zugreifen möchten, zu ändern? Wenn Sie es in einen Ordner verschieben, wird dieser Ordnername Teil des Namespaces. Wenn Sie beispielsweise eine Ressourcendatei mit dem Namen "Resource1" hatten und auf diese über Resource1.String1 zugegriffen haben, wurde sie nach dem Verschieben in "Folder" zu Folder.Resource1.String1. –

+0

Vielen Dank Tal, ich wusste nicht, ein Ordner wurde Teil des Namensraums. Prost! – Grant

Verwandte Themen