NSIS неправильное место установки - PullRequest
1 голос
/ 11 марта 2020

Я схожу с ума, пытаясь понять, почему мои настройки на целевом устройстве ведут себя по-разному

Версия Nsis: 3.04 Моя машина: Win 10 64bit Build 17763 Клиентская машина: Win 10 32bit Build 10586

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

InstallDir "$LOCALAPPDATA\Programs\OurApp

на нашей машине это делает установку установки на

C: \ users \ username \ local \ appdata \ Programs \ OurApp

, но на клиентском компьютере он устанавливается в

C: \ Program Files (x86) \ OurApp

Я, конечно, не могу понять, почему это происходит. Нам даны инструкции, что данные не должны быть легко доступны для пользователя, кроме как через приложение, которое мы создаем с помощью. net. Затем, когда приложение удалено, оно должно очистить данные, которые оно создало. Это работает только в том случае, если приложение установлено в папке с данными приложения.

Есть ли какие-либо подсказки о том, почему это происходит?

1 Ответ

1 голос
/ 11 марта 2020

Первоначальное расследование должно быть; $ Instdir установлен на правильный путь внутри установщика?

Если бы вы могли записать $ Instdir в файл журнала на компьютере клиента, который должен помочь сузить его.

Распространенным источником неправильного $ Instdir является использование InstallDirRegKey в сочетании с существующей более старой (возможно частичной) установкой в ​​нежелательном каталоге.

Если $ Instdir по-прежнему c: \ users ... в вашем Section тогда вам нужно смотреть на Windows, а не на NSIS. Скажите им, чтобы посмотреть на свойства файла установщика .exe. Есть ли какие-либо параметры совместимости? Есть ли у них другие совместимые прокладки , применяемые через групповую политику?

Также было бы полезно, если бы они могли запустить Process Monitor и отправить вам файл журнала pml. Это должно показать, читается ли установочный каталог из реестра и какие пути передаются ядру при создании файлов и каталогов.

Наконец, убедитесь, что в вашем скрипте есть RequestExecutionLevel user, чтобы избежать вмешательства UA C.

...