Wie kann ich Visual Studio verwenden, meine aktualisierte Symbol für mein NotifyIcon?

Ich bin Total ratlos, die von diesem Problem und ich weiß nicht, was zu tun ist.
Ich habe erstellt ein einfaches C# Windows Form-Anwendung mithilfe von Visual Studio 2012 Premium. Ich habe ein kleines Programm, das gestartet und erstellt ein NotifyIcon in der Taskleiste. Auf Klick auf das Symbol in der Taskleiste, ein Kontextmenü wird angezeigt, und es zeigt ein paar im Menü Optionen (Optionen, Über, usw.), wo jede option zeigt ein Formular. Ich habe zwei icon-Dateien (.ico) über die Ressourcen, die durch Rechtsklick auf mein Projekt-Element, Eigenschaften, Ressourcen. Ich programmgesteuert ändern Sie die Ikone meiner NotifyIcon, abwechselnd in den zwei verschiedenen icons. Mein problem ist, dass meine alten icons behalten Anzeige, statt meine neue, die ich Hinzugefügt haben, um das Projekt. Klar, mein Problem ist, dass die ALTEN icons behalten Anzeige--ist alles, und es gibt keine Fehler, es nur nicht zeigen, meine neuesten icons.
Die Art, wie ich bin, ändern die Symbole im code:

notifyIcon.Icon = Resources.IconA03312014; //or the other one; the numbers are the date

Ich zunächst meine icons und benutzt diese und später beschlossen, Sie zu ändern ein bisschen--ich wechselte einige Farben, etc. So dann entfernte ich die alten icons von meinem Projekt, indem Sie das Ausschließen von Projekt-option. Dann habe ich meine neue icons, die hatten verschiedene Namen. Dann habe ich aktualisiert meine beiden code-Referenzen, laden Sie die Symbole, um die Verwendung der neuen Namen. Egal was ich mache, meine neue/aktualisierte Symbole werden nicht angezeigt!

Ob ich das Programm in Visual Studio im Debug-oder Release-Modus, ist es egal. Ich kann sauber die Lösung, wieder aufzubauen, und dann führen Sie die ausführbare Datei durch anklicken direkt in Windows, und kein Unterschied. Alte Symbole werden gezeigt.
Ich habe verschiedene Sätze von Informationen online, die erklären, wie zu deaktivieren Sie die Windows-8-Symbol-cache (drei verschiedene Methoden). Ich habe gelöscht, den Cache Benachrichtigungs-Symbole in der Taskleiste als auch mit zwei verschiedenen Methoden.

Grundsätzlich, ich hab meine Lösung und schließen von Visual Studio. Ich kill Sie alle explorer-Prozesse laufen ie4uinit.exe -ClearIconCache von der Befehlszeile aus und löschen der IconCache.db-Datei. Dann lösche ich die Benachrichtigung icon-cache durch Bearbeiten der Registrierung folgenden Anweisungen ähnlich wie diese (http://www.sevenforums.com/tutorials/13102-notification-area-icons-reset.html). Dann habe ich das Herunterfahren des PCs. Beim Start von backup-und Umbau meiner Lösung und ausgeführt, die alten icons sind immer noch da, irgendwie. Die physische .ico-Dateien, die für die alten Symbole gelöscht wurden, vor langer Zeit. Jedes mal habe ich neue icons auf meine Ressourcen, die ich angelegt habe neue icon-Dateien von Grund auf neu (mit icobundl.exe) und gab Ihnen Namen eindeutig, indem Sie das Datum im Namen. Ich bin mir bewusst, dass Windows, und anscheinend ist Visual Studio auch, wie cache, um die Symbole und, wenn Sie löschen einige icon-Datei, A. ico, in Windows und benennen Sie ein weiteres Symbol Datei B. ico A. ico, B. ico-Datei das tatsächliche Symbol ändert sich zu Einem ist. Jedenfalls glaube ich nicht, der name der icon-Datei ist das Problem.

Nun, in code, wenn ich mit der gleichen Strategie und eines von meiner form der icons funktioniert es einwandfrei und das Formular zeigt meine neueste Symbol, während meine notify-Symbol zeigt immer noch die alte (und jetzt gar nicht, außer in Visual Studio la la land " - Symbol).
Also, ich habe:

...
if(firstState){
    notifyIcon.Icon = Resources.IconA03312014;
    optionsForm.Icon = Resources.IconA03312014;
}
else{
    notifyIcon.Icon = Resources.IconB03312014;
    optionsForm.Icon = Resources.IconB03312014;
}
firstState = !firstState;
...

Gibt es keine Fehler und sowohl das notifyIcon und optionsForm änderungen, aber das notify-Symbol zeigt mein ALTES Symbol, das nicht mehr existiert überall (außer irgendwo/irgendwie in VS). Die form ist Symbol für die Veränderungen in meinem aktualisierte/aktuelle Symbol.

Wenn ich kopieren meine app .exe-Datei auf einem anderen computer, und führen Sie es aus, es zeigt auch die alten Symbole für das notify-Symbol, also die alten icons sind immer noch irgendwie eingebettet in meine exe-Datei erzeugt, die von Visual Studio. Wenn ich einfach direkt laden .ico-Datei, anstelle von verweisen auf meine Projekt-Ressourcen, die neuen icons angezeigt WERDEN. Diese haben eine Art von seltsamen Ressourcen caching-Problem in Visual Studio?

Kann jemand mir bitte helfen mit diesem Problem? Ich verstehe einfach nicht wie meine alten icons sind immer noch irgendwo, und wie Sie mit Visual Studio irgendwie weiß, wie wechseln Sie! Das ist richtig, das obige Symbol swapout funktioniert perfekt für die form. Aber für das notifyIcon, wird das Symbol nicht Umschalten von "A" nach "B", aber es nutzt das alte icon und die alte B-Symbol--Symbole, die nicht existieren, nirgendwo mehr!

Ich hoffe, ich erklärte mein Problem. Ich bin sehr dankbar für jede Hilfe, die jedermann anbieten kann.

InformationsquelleAutor user3487286 | 2014-04-02
Schreibe einen Kommentar