Visual Studio zeigt keine Bilder ( Resources ) im Programm an

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von ThomasG82.

    Visual Studio zeigt keine Bilder ( Resources ) im Programm an

    Hallo,

    Wenn ich mein Projekt aus VS starte wird kein einziges Bild aus der Resource in den Formen angezeigt. Zustande gekommen ist das, als ich ein Bild für ein Button, welches ich selbst in Adobe PS gemacht habe in die Resources eingefügt habe, gespeichert habe und das Projekt gestartet habe.
    Alles wie jedes mal. Beim Starten des Projekt kam dann dieser Fehler:


    Unerwarteter Fehler bei der GenerateResource-Aufgabe.
    System.Runtime.InteropServices.ExternalException (0x80004005): Allgemeiner Fehler in GDI+.
    bei System.Drawing.Image.Save(Stream stream, ImageCodecInfo encoder, EncoderParameters encoderParams)
    bei System.Drawing.Image.Save(MemoryStream stream)
    bei System.Drawing.Image.System.Runtime.Serialization.ISerializable.GetObjectData(SerializationInfo si, StreamingContext context)
    bei System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter, SerializationBinder binder)
    bei System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.Serialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter, SerializationBinder binder)
    bei System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, __BinaryWriter serWriter, Boolean fCheck)
    bei System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean fCheck)
    bei System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph)
    bei System.Resources.ResourceWriter.WriteValue(ResourceTypeCode typeCode, Object value, BinaryWriter writer, IFormatter objFormatter)
    bei System.Resources.ResourceWriter.Generate()
    bei System.Resources.ResourceWriter.Dispose(Boolean disposing)
    bei System.Resources.ResourceWriter.Dispose()
    bei Microsoft.Build.Tasks.ProcessResourceFiles.WriteResources(ReaderInfo reader, IResourceWriter writer)
    bei Microsoft.Build.Tasks.ProcessResourceFiles.WriteBinaryResources(ReaderInfo reader, String filename)
    bei Microsoft.Build.Tasks.ProcessResourceFiles.WriteResources(ReaderInfo reader, String filename)
    bei Microsoft.Build.Tasks.ProcessResourceFiles.ProcessFile(String inFile, String outFileOrDir)
    bei Microsoft.Build.Tasks.ProcessResourceFiles.Run(TaskLoggingHelper log, ITaskItem[] assemblyFilesList, List`1 inputs, List`1 satelliteInputs, List`1 outputs, Boolean sourcePath, Boolean usePreserializedResources, String language, String namespacename, String resourcesNamespace, String filename, String classname, Boolean publicClass, Boolean extractingResWFiles, String resWOutputDirectory)
    bei Microsoft.Build.Tasks.GenerateResource.Execute()
    bei Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
    bei Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()

    Dieser Fehler kommt jetzt immer wenn man mit den Resourcen irgendetwas macht. Also etwas dazu nimmt oder entfernt.


    Hat das mal jemand gehabt?

    Schnöne Grüße
    @DragsTrail Lösche das Bild und alle Verweise darauf (so lange editieren, bis kein Compilerfehler mehr kommt).
    Füge dann das Bild auf diesem Wege hinzu:
    Projekt => Eigenschaften => Ressourcen => Ressource hinzufügen => vorhandene Datei hinzufügen.
    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!
    Hallo Rod,

    Der Compiler zeigt keinen Fehler. Der Fehler oben kommt wenn man irgendetwas in den Resourcen macht. Immer 1mal. Wenn dann das 2mal auf Debug gehst geht der Fehler weg.

    Du kannst das Bild nicht mit Visual Studio löschen. Wenn ich es lösche, wird das Bild zwar in den Resourcen nicht angezeigt, aber in physikalisch ist das Bild immer noch im Resource-Ordner.

    Wenn ich irgendetwas im Resourcen lösche, kommt der Fehler: Resource-Datei beschädigt. Dann geht das ganze Programm nicht mehr.

    DragsTrail schrieb:

    der Fehler: Resource-Datei beschädigt.
    Diesen Part in der ResX-Datei musst Du dann löschen.
    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!
    So jetzt hab ich vollgendes gemacht:

    Im Projektmappen-Explorer die Resources gelöscht
    Dann unter Programm-Eigenschaften-Resources noch mal gelöscht, weil es nicht automatisch gemacht hat.
    Im ganzen Programm incl. Designer alle verweise gelöscht.

    Hat funktioniert.

    Die Bilder brach ich aber trotzdem. Also Bild für Bild eingefügt wieder und Debugt. Passt.

    Jetzt gerade ein Bild eingefügt. BOOOOOM Der Fehler aus dem 1. Post wieder da und jetzt zeigt er keine Bilder mehr an.
    Dann muss es ja aber an dem Bild liegen. Idee wäre, wieder alles zurück setzen so wie du es bereits getan hast, wieder alles einfügen. Und das Bild, was Probleme macht in einem anderen Programm öffnen und erst mal schauen ob es dort Probleme macht. Dann nochmal neu abspeichern. Denn das hört sich ja nach einem Dateifehler an und nicht nach einem Fehler in VS.
    Sowas kenn ich nur wenn der Schreibvorgang der Datei fehlgeschlagen ist oder aber sich im Code des Bildes etwas anderes versteckt.
    VS nimmt die Ressourcen ja Bit für Bit in Betracht, vermute ich mal stark, und dann würde es natürlich Fehler geben wenn der Code auf einmal noch etwas ganz anderes beinhaltet.
    Ist das Bild denn von dir?
    @ThomasG82 Jou.
    @DragsTrail Öffne das Bild im Paint oder IrfanView und speichere es neu ab.
    Falls das immer noch nicht geht, häng das Bild mal an.
    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!
    @RodFromGermany das ist aber auch gewagt, wenn das Bild wirklich Code beinhaltet, der nicht zum Bild gehört und der Fehler nicht auf einen Schreib-/Leseverlust zurückzuführen ist.
    Ich gehöre einer anderen Branche an aber sowas ist dann eigentlich immer Schadecode, sonst wüsste @DragsTrail ja wissen was sich in dem Bild versteckt.
    Das liegt 1000% nicht an den Bildern.

    Folgende Situation: Ich lade 9 Verschiede Bilder in der Resource rein und nehme die FormXXXX und füge den Buttons die Bilder zu. Beim Alles Speichern Fehler aus dem 1. Post

    Backup genommen und dies mal auch bei der FormXXXX nur je 3 Bilder geladen und den jeweiligen Buttons zugeordnet und AllesSpeichern
    Nächste 3 Bilder und zuweisen und AllesSpeichern
    Nächste 3 Bilder und zuweisen und AllesSpeichern

    KEIN FEHLER

    :cursing:
    Hab's bei mir probiert, klappt problemlos. Kannst Du mal bitte das Projekt ohne bin-, obj-, .vs- und .git-Ordner und gezippt über [+ Erweiterte Antwort] hochladen? Vielleicht finden wir so das Problem und eine Lösung.
    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.
    Hm klingt ja dann doch nach einem grundsätzlichen Problem in VS. Werde morgen mal versuchen den Fehler zu replizieren. Was für ein Bildformat hast du (Dateiendung) und welche größe haben die Bilder ungefähr und wo weißt du sie auf der Form zu.
    Versuch mal bitte so viele Details wie möglich zu nennen, erleichtert es den Vorgang nachzubauen.
    Hast du die Bilder direkt in der Form als Ressource angegeben oder über den Ressourcen Manager im Projekt? Liegen die Dateien direkt vor oder kommen sie aus einem Netzwerk Pfad und müssen importiert werden?

    Ok oder so wie @VaporiZed es gerade gesagt hat machen