Зарегистрируйте .msi (проект установки) для архитектур x86 и x64 - PullRequest
0 голосов
/ 08 октября 2018

Я строю проект установки для приложения биометрического захвата.

Дело в том, что для того, чтобы он работал на ПК пользователя, мне нужно зарегистрировать путь .exe в Regedit.

Я уже делаю это, ориентируясь на "Program Files (x86)) ", как вы можете видеть ниже, но в 32-битных ПК она не существует, и, следовательно, приложение не запустится.

enter image description here

Что я могу сделать, чтобы он работал как для 32-, так и для 64-битных архитектур?

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Пара вещей:

  1. Для отдельных архитектур требуются отдельные MSI: https://blogs.msdn.microsoft.com/heaths/2008/01/15/different-packages-are-required-for-different-processor-architectures/

, так что если вам действительно нужны две разные сборки, одна с вашими 64и другой 32-битный код, тогда вам нужны отдельные сборки MSI с использованием настроек проекта установки Visual Studio.Одна 32-битная основная папка в свойствах каталога папок приложения будет ProgramFilesFolder, а 64-битная будет использовать ProgramFiles64Folder.

В обоих случаях необходимой вам записью реестра будет [TARGETDIR] Your.exe, и это будет просто работать, поскольку в обоих случаях TARGETDIR будет именем папки, а исполняемый файл не будет находиться в подпапке.
0 голосов
/ 08 октября 2018

Установка MSI не требует регистрации исполняемого файла.

Она может только поместить информацию в реестр Windows, связанную с удалением приложения и т. Д. .

По умолчанию установщик MSI помещает все файлы в одну корневую папку (например, MS Office будет помещен в «C: \ Program Files \ Office» или в нечто подобное).Для настройки целевой папки установки, пожалуйста, используйте свойство TARGETDIR .

Свойство TARGETDIR вычисляется во время установки (более того - оно может быть переопределено пользователем).Свойство по умолчанию "[ProgramFilesFolder]" является местоположением x86, однако оно существует везде.Свойство "[ProgramFiles64Folder]" - это то, что вам нужно, однако оно существует только в ОС x64.

Итак, что вам нужно:

  • Найти действие / шаг, который будет исправлять TARGETDIR
  • Добавьте действие / шаг, прежде чем использовать «ProgramFiles64Folder», если он существует

Возможно Этот ответ может помочь вам с примерами.

ПослеШаги выше вашего приложения выберет нормальную папку Program Files для операционных систем x86 / x64.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...