Значок панели задач не изменится после установки двоичного файла - PullRequest
0 голосов
/ 18 августа 2011

У меня есть приложение WPF в .net 3.5 sp1, где я периодически меняю значок главного окна.Я вижу изменение значка панели задач при запуске в процессе размещения vs, при запуске непосредственно из папок bin / Debug или bin / Release, но не при установке и запуске двоичного файла из \ Program Files!Значок заголовка окна по-прежнему изменяется правильно ...

Я устанавливаю значок так:

Uri imageSource = new Uri("pack://application:,,,/MyProject;component/Images/test.ico");
this.Icon = BitmapFrame.Create(imageSource);

Почему значок панели задач не меняется?

У меня есть набор ApplicationIcon.Это то, что отображает значок панели задач вместо того, чтобы изменить его на то, что я установил.В соответствии с msdn ApplicationIcon является просто запасным вариантом в случае, если this.Icon не установлен.

У меня не закреплен значок панели задач.

Главное окно неокно запуска приложения.На самом деле, нет окна запуска.Окно открывается из иконки в системном трее.

Для иконок ApplicationIcon и test.ico, упомянутых выше, для обоих действий компиляции установлено значение Resource.

Программа установки WiX не делает ничего особенногок exe или иконкам.Ссылка на exe-файл выглядит следующим образом:

<File Id="MyExe" Name="$(var.MyProject.TargetFileName)"
 Source="$(var.MyProject.TargetPath)" KeyPath="yes" Vital="yes" />

В настоящее время я смотрю на AppUserModelID , чтобы увидеть, может ли это решить эту проблему, но кажется ненужным переопределять поведение Windows 7 по умолчанию таким образом,У меня есть два ярлыка, созданные WiX.Один в папке программ в меню «Пуск» и один в папке «Пуск» в меню «Пуск».

Обновление 18 августа11:

Хорошо, это просто странно, странно, странно.

Я начал пытатьсячтобы решить еще одну досаду, в моем окне разрешалось закрепление панели задач, когда я этого не хочу (это по умолчанию панель задач win7 с глюмингами).Поэтому я вручную установил IsHostApp REG_BINARY 0000 через regedit в HKCR \ Applications \ MyEXEName.exe.Чтобы изменения вступили в силу, мне пришлось обновить ярлыки, которые ссылаются на приложение (или я мог бы переустановить).И вот, при следующем запуске приложения не только исчезает функция закрепления, но и правильно обновляется значок на панели задач !!!

Кто-нибудь может объяснить, как это решило проблему?

1 Ответ

1 голос
/ 19 августа 2011

Когда установщик Windows создает ярлыки в меню «Пуск», он устанавливает значок ярлыков, указывающих на кэш значков установщика.Эта функция требуется для рекламы, где указанный файл не существует, но все равно должен отображаться правильный значок.Это также позволяет отображать правильную иконку для приложения, если его основной .exe удален (и вы можете запустить восстановление MSI, чтобы исправить это).

Ваше приложение запускается с помощью ярлыка из папки «Автозагрузка» и значкаярлык используется на панели задач.(И у вас есть главное окно: независимо от того, как вы его показываете, когда приложение запускается или только когда вы щелкаете значок приложения в области уведомлений; кроме того, у вас должно быть окно, чтобы иметь возможность получать щелчки от значка области уведомлений.)

Когда вы отключили закрепление приложения на панели задач, он игнорирует значок, установленный в ярлыке, с которого запускается ваше приложение, и поэтому значок на панели задач обновляется при изменении значка окна.

...