Hallo,
ich habe ein Programmpaket mit mehreren Applikationen in Client-Server-Architektur. Bisher hatten alle Applikationen das gleiche Icon, was manchmal zu Verwirrungen führte. Daher habe ich beschlossen, der Master-Applikation ein separates Icon zuzuordnen. Ich habe also ein entsprechendes Icon erzeugt, als "MultiIcon" in 7 verschiedenen Größen (16x16 ... 256x256) und 3 Farbtiefen abgelegt und dem Projekt beigefügt. In der Master-Applikation habe ich dieses neue Icon sowohl der Form als auch dem Projekt zugeordnet.
In Windows XP erscheint das neue Icon im Explorer, in der Form und in der Taskleiste wie gewünscht. Alles super. Bei Windows 7 klappt das jedoch nur für den Explorer und für die Form, in der Taskleiste erscheint wie vorher das alte Icon. Dabei ist es egal, ob ich in der Taskleiste kleine oder große Icons aktiviere.
Was mache ich falsch? Welche Einstellung fehlt noch?
Besten Dank im Voraus
Christeä
Es ist schlimm, eine Ausnahme zu sein, aber noch schlimmer, keine zu sein.
was passiert wenn du das alte icon löschst?
Hm, wenn ich das Icon probehalber temporär aus dem Installationsordner lösche, passiert exakt das gleiche wie vorher.
Aus der Entwicklungsumgebung selbst kann ich es nicht löschen, da es für alle anderen Applikationen unverändert weiter verwendet werden soll.
Danke
Christel
Es ist schlimm, eine Ausnahme zu sein, aber noch schlimmer, keine zu sein.
Hallo Christel,
man kann ein Icon der Anwendung als .NET Ressource hinzufügen (/res) und unabhängig davon als Win32 Ressource (/win32icon). Möglicherweise ist an einer der beiden Stellen noch das alte Icon eingetragen.
herbivore
Hallo herbivore,
ich habe alles durchsucht und keinen andere Stelle in .NET-Entwicklungsprojekt gefunden, wo das Icon noch zu finden gewesen wäre. Ich habe sogar das neue Icon als Ressource zum Projekt hinzugefügt ... ohne Erfolg.
Danke, Christel
Es ist schlimm, eine Ausnahme zu sein, aber noch schlimmer, keine zu sein.
Windows7 hat einen Icon Cache. Liegt im App-Data Verzeichnis und heisst IconCache.db
Diesen zu löschen bzw. leeren ist gar nicht so einfach.
Man muss den explorer.exe Prozess beenden (alle!), erst dann kann die Datei gelöscht werden. Danach den Explorer wieder starten und der Cache wird neu aufgebaut.
Edit: es geht wohl doch einfacher, wie ich gerade herausgefunden hab.
Einfach
ie4uinit.exe -ClearIconCache
ausführen.
Betrifft aber eigentlich nur den Explorer selbst.
Ich vermute daher auch, dass Du eben doch irgendwo noch eine Ressource hast. Mal bin/obj-Verzeichnisse gelöscht und alles neu gebaut? Vielleicht in irgendeinem Installationsordner noch enthalten, das Du nicht überschreibst?
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hallo Abt,
OK, das mit dem Cache leeren werde ich probieren.
Ich vermute daher auch, dass Du eben doch irgendwo noch eine Ressource hast. Mal bin/obj-Verzeichnisse gelöscht und alles neu gebaut? Vielleicht in irgendeinem Installationsordner noch enthalten, das Du nicht überschreibst?
Ja, natürlich gibt es das Icon noch innerhalb der Installation, da diese aus einem Server und 3 Clientapplikationen besteht und mehrere davon noch das alte Icon verwenden.
Das Projektverzeichnis der Master-Applikation habe ich durchsucht und nix gefunden. Neu gebaut natürlich auch, habe ja einen neuen Release erzeugt.
Ich hatte nicht vermutet, dass das so eine Blase nach sich zieht, das Icon zu wechseln.
Grmpf 🙁
Danke
Christel
Es ist schlimm, eine Ausnahme zu sein, aber noch schlimmer, keine zu sein.