Как установить AppUserModelID для ярлыка?

Я в Windows 7 работаю над объединением двух приложений с одним и тем же значком панели задач, как описано в этом вопросе:

Закрепление объявленных ярлыков на панели задач в Windows 7

Я вижу там много онлайн-документации, в которой мне нужно установить AppUserModelID как свойство ярлыка. Моя программа установки использует базовый проект установки Visual Studio 2008, и я не вижу способа установить свойства ярлыка при установке. Может ли кто-нибудь подсказать мне, как это сделать?


person Clyde    schedule 12.05.2010    source источник
comment
Есть ли в этом прогресс? У меня такая же проблема с проектом VS2010   -  person Twelve47    schedule 31.01.2011


Ответы (3)


Шэн прокомментировал: «Вы также можете переключиться на другие инструменты разработки MSI, которые поддерживают установку идентификатора приложения для ярлыков, например WIX или NSIS».

Чтобы добиться этого с помощью элемента Shortcut в Wix, вы должны добавить дочерний элемент ShortcutProperty к элементу Shortcut и использовать имя свойства Shell "System.AppUserModel.ID" в качестве ключа.

    <Shortcut Id="StartMenuShortcut"
              Name="Shortcut Name"
              Description="Shortcut Description"
              Target="[INSTALLLOCATION]Application.exe"
              WorkingDirectory="INSTALLLOCATION">
      <ShortcutProperty Key="System.AppUserModel.ID" Value="AppUserModelID" />
    </Shortcut>
person Olly    schedule 10.01.2012
comment
Известны проблемы с явной установкой для ShortcutProperty / Key значения System.AppUserModel.ID - support. microsoft.com/en-us/kb/2745126. Похоже, что Microsoft рекомендует вместо этого использовать GUID + PropertyID. System.AppUserModel.ID = {9F4C2855-9F79-4B39-A8D0-E1D42DE1D5F3}, 5 (из - msdn.microsoft.com/en-us/library/windows/desktop/) - person jbudreau; 03.04.2015
comment
Спасибо @jbudreau, который работал в установщике Keybase и скоро будет выпущен в следующей версии: github. com / keybase / client / pull / 11185 Следует повторить, что OP спросил о Windows 7, в которой будут ошибки, явно указывающие свойства ярлыка по имени вместо GUID, согласно приведенным выше ссылкам MS - person Steve; 03.04.2018

Я ничего не знаю о проектах установки VS2k8, поэтому я не знаю, можете ли вы запускать настраиваемые действия и т. Д., Но я знаю, что для установки AppId для ярлыка, который вы загружаете / создаете ярлык и запрашиваете его IShellLink для IPropertyStore, затем InitPropVariantFromString вариант с вашим идентификатором и вызовите SetValue (PKEY_AppUserModel_ID, propvariant) + Зафиксировать в хранилище свойств

person Anders    schedule 14.05.2010

Добавление к ответу Андера.

Проект установки Visual Studio не поддерживает установку appid и, вероятно, никогда не будет, если Microsoft не отменит устаревание функции настройки проекта.

Существует пакет кода Windows API, который помогает в вызове API оболочки. Вот руководство по созданию ярлыка в настраиваемом действии. Вы можете добавить код для обновления ярлыка настраиваемого действия.

Вы также можете переключиться на другие инструменты разработки MSI, которые поддерживают установку идентификатора приложения для ярлыков, например WIX или NSIS.

person Community    schedule 31.01.2011
comment
Кстати, у emoacht есть отличная запись в блоге, описывающая, как создать ярлык со связанным AppUserModelID в C # (emoacht.wordpress.com/2012/11/14/csharp-appusermodelid) - person Pierre Arnaud; 29.07.2013