Изменить место установки приложения UWP из Installshield

Я создал настольное приложение WPF и сгенерировал сборку MSI с помощью Installshield. Я создал установку MSI для установки моего приложения в C:\MyApp\ location вместо использования программных файлов. Работает нормально, как и ожидалось.

Затем я создал и протестировал приложение UWP, используя тот же проект InstallShield. Для этого Installshield 2016 поддерживает интеграцию Desktop Bridge - http://learn.flexerasoftware.com/IS-WBNR-InstallShield-2016-Whats-New.

Я заметил, что приложение UWP установлено в папке по умолчанию (C:\Program Files\WindowsApps), а не в папке, определенной в Installshield.

Я хочу изменить это местоположение из моего проекта InstallShield. Пожалуйста, помогите мне найти способ решить эту проблему.

2 ответа

Для приложений UWP мы не можем изменить их место установки во время установки.

Как вы знаете, по умолчанию приложения UWP будут установлены в C:\Program Files\WindowsApps, Вы можете установить папку по умолчанию в меню "Настройки" → " Система" → " Хранилище" → " Изменить место хранения нового содержимого".
Вы можете выбрать один диск в раскрывающемся меню под заголовком " Новые приложения будут сохранены в " и затем нажать " Применить". На выбранном вами диске будет создана новая папка с именем "WindowsApps". И любое новое приложение UWP будет установлено в эту папку. Обратите внимание, что Windows 10 будет устанавливать новые приложения только в текущем выбранном месте. Существующие приложения не перемещаются в новое местоположение.

Если вы хотите изменить местоположение установки для одного приложения, вам нужно перейти в " Настройки" → " Приложения и компоненты" и нажать кнопку " Переместить".
Однако это доступно только после того, как вы установили приложение, и оно может перемещать приложение только на другой диск. Нет способа указать место установки для какой-либо другой папки, например C:\MyApp\ и т.п.

Это вопрос XY, поэтому этот ответ может быть не совсем связан с заданным вопросом.

Знание местоположения, в котором пакет приложений UWP не помогает ни в малейшей степени. Это хорошо для изучения системы в качестве разработчика, но это почти бесполезно для выпущенного приложения. Вместо этого вам нужен другой способ для запуска вашего приложения.

UWP предлагает несколько способов запустить ваше приложение:

  • Использовать протокол (т.е. пользовательскую схему в URL)
  • Используйте псевдоним (то есть альтернативное имя программы командной строки)
  • Использовать API ( IApplicationActivationManager:: ActivateApplication)

Первые два из них требуют модификации вашего AppxManifest. Поскольку InstallShield не ставит этот фронт и центр, он предлагает альтернативные способы заполнения этих частей манифеста. (Третий вместо этого требует изменений в коде, который вызовет это приложение, поэтому я не буду обсуждать это дальше.)

протокол

Чтобы заполнить обработчик протокола из InstallShield, просто добавьте обработчик протокола в реестр. При сборке AppxManifest InstallShield прочитает эту регистрацию и переведет ее в записи протокола манифеста.

кличка

Чтобы заполнить AppExecutionAlias ​​из InstallShield, просто App Paths ключ реестра для каждой соответствующей точки входа. App Paths ключ реестра установлен в HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths, и вы должны использовать следующий формат для вашего псевдонима:

HKLM \ Software \ Microsoft \ Windows \ CurrentVersion \ Пути к приложениям \< alias.exe>

(По умолчанию) = < путь \ к \ вашему \ exe>

Для простоты ваш путь должен использовать ссылки на свойства ([ProgramFilesFolder]Company Name\Product Name\executable.exe) или ссылки на компоненты ([$componentid] - обычно исполняемый.exe или NewComponent23). При создании AppxManifest InstallShield прочитает эту регистрацию и переведет ее в записи псевдонимов манифеста.

Другие вопросы по тегам