Unterordner in My.Resources

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von Humax.

    Inwieweit willst Du drauf zugreifen? Wenn Du im Ordner Resources nen Unterordner erstellst und da ne Datei reinhaust, die Du über Projekteigenschaften -> Resources einbindest, dann eben ganz normal: My.Resources.NameDerRessource. Bestimmt nicht das Szenario, was Du vorhast - weil wohl einfach noch zuwenig Infos Deinerseits da sind.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Doch das ist genau das Scenario, aber der Zugriff wie beschrieben funktioniert nicht.
    Bin folgendermaßen vorgegangen.

    Im Projektmappenexplorer habe ich unter Resourcen einen Unterordner erstellt
    Dann in den Projekteigenschaften die Resource hinzugefügt und diese dann im Projektmappenexplorer in den Ordner verschoben.

    Solange sie im "Haupt"Ordner liegt kein Problem mit dem Zugriff aber nach dem verschieben geht es nicht.

    EDIT:

    Ok, hab die Lösung, man muss die hinzugefügte Datei im Unterordner unter Eigenschaften der Datei \ Buildvorgang auf "AdditionalFiles" stellen.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Humax“ ()

    Humax schrieb:

    Dann in den Projekteigenschaften die Resource hinzugefügt und diese dann im Projektmappenexplorer in den Ordner verschoben.
    Genau falschrum. Erst verschieben, dann einbinden. Sonst kommt VS nicht mehr klar.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Es gibt ne Datei und es gibt ne (eingebundene) Ressource, die quasi auf die Datei verweist.
    Angenommen, Du willst ein Bild im Projekt haben. Du erstellst es mit Paint, dann haust Du es in Deinen Resources-Ordner oder den Unterordner und erst dann bindest Du es mittels Ressourcen hinzufügen in Dein Projekt ein. Sobald Du es eingebunden hast, wird dies in der Resources.resx* abgespeichert. Aber wenn Du dann den Aufenthaltsort der Datei änderst, wird nicht automatisch die Resources.resx*, in der der Dateiverweis drinsteht, angepasst. Und schon hagelt es Fehler. Daher: erst den endgültigen Ort für die Datei festlegen und danach erst als Ressource ins Projekt einbinden.

    * bzw. in der Resources.Designer.vb
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Ich weiß nicht ob ich dich falsch verstehe oder du mich...
    Ich habe eine Datei. "combatdebrief.lua". Die ist auf meiner festplatte auf "D:\" gespeichert.
    Diese binde ich nun ein und kann über my.resources auch zugreifen.

    Wenn ich nun (in Visual Studio) im Projektmappenexplorer unter dem einen Unterordner erstelle und die vorhandene Resource in den Unterordner reinziehe kann ich auf diese Datei (auf der festplatte ist sie immer noch da wo sie war) nicht mehr zugreifen, außer ich ändere wie oben beschrieben die Eigenschaften.

    Humax schrieb:

    auf der festplatte ist sie immer noch da wo sie war
    Nö. Standardmäßig wird durch das Einbinden der Ressource eine Dateikopie angelegt, die im Resources-Ordner abgelegt wird. Und in der Resources.resx wird auf diese Kopie verwiesen, nicht auf das Original. Und wenn Du nun diese Datei mithilfe des Projektexplorers von A nach B hinverschiebst, steht in der Resources.resx immer noch A drin, obwohl die Datei in B ist. Und das gibt Fehler.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    OK, das hab ich jetzt kapiert. Aber dann weis ich immer noch nicht, wie ich es anstellen soll (so wie du es erklärt hast - erst in den Ordner Verschieben und dann einbinden). Wenn ich die Datei ja noch nicht eingebunden habe kann ich sie ja nicht im Projektmappenexplorer verschieben, weil sie nicht da ist.
    Wieso? Sowohl der Resources-Ordner als auch die Unterordner sind doch nicht nur in VS bzw. im Projektexplorer vorhanden, sondern sind doch ganz normale Ordner auf Deiner Festplatte. Da schiebst Du ne Kopie von der Datei hin, die Du als Ressource einbinden willst. Sobald die Datei im Ordner ist, kannst Du im Projektordner auf Aktualisieren klicken und schon ist die Datei zu sehen. Und dann kannst Du das gute Stück als Resource einbinden. Dann wird auch keine weitere Kopie angelegt.

    1. Projektexplorer ohne neue Datei
    2. Datei in den Resources-Unterordner kopieren
    3. Projektexplorer aktualisieren -> Datei erscheint (ist noch nicht als Ressource eingebunden!)
    4. Vorhandene Datei als Ressource hinzufügen
    5. Datei aus dem Unterordner auswählen
    6. Datei wird eingebunden, aber keine weiter Kopie erstellt
    7. Ressource ist im Code verfügbar.

    @Humax: Aktualisierung nach Deinem Post mit Bebilderung.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „VaporiZed“ ()

    Humax schrieb:

    einfacher im VS den Unterordner anzulegen
    Genau das ist der Plan.
    Egal ob Ressource oder Quellen. Unterordner im Studio anlegen und dann im Kontextmenü dieses Unterordners Vorhandene Dateien hinzufügen.
    Liegen diese bereits in diesem Ordner, passiert nix weiter.
    Liegen sie iwo auf der Festplatte, werden sie vom Studio an diese Stelle kopiert.
    Gleichzeitig werden sie dem Projekt kinzugefügt, sie sind dann in der vbproj | vcproj gelistet.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!