Почему иконка приложения отображается по-разному?
Есть приложение на C#/WPF. Решил сделать для него иконку. Конвертировал .bmp в .ico, в свойствах проекта указал иконку. Всё заработало, как и ожидалось. Позже понадобилось сменить иконку. Проделал те же действия с новой иконкой и вот тут началось интересное:
- Собираю под Win32 и x64 – под второй иконка заменяется, под первой остаётся прежней.
- Удаляю файлы со старой иконкой из всех возможных расположений. Пересобираю – то же самое.
.exeсобранный под х64 с новой иконкой, под Win32 – со старой. - Дальше веселее – захожу в папку с
.exe-файлом, у которого иконка не заменилась. Копирую его в другое расположение. Иконка копии меняется на новую. Просто после копирования. - Теперь ещё немного интереснее. Всё в той же папке выделяю
.exeи делаю Ctrl+C и сразу же там же Ctrl+V. И иконка у копии меняется на новую, а у исходного файла остаётся старой - При переименовании исполняемого файла у файла с новым именем отображается новая иконка. При переименовании обратно иконка возвращается.
- И, наконец, при перемещении на другой компьютер иконка всё же остаётся старой. Прочие манипуляции на другом компьютере не производились.
В общем, по всей видимости, ОС как-то привязывает иконку к имени файла. Именно к имени, а не содержимому.
Логичный вопрос: что за магия происходит и как от этого всё-таки избавиться? (я понимаю, что этому есть рациональное логичное объяснение, но я его не нашёл, увы).