Inno Setup ... приложение вылетает тихо, если не запускается от имени администратора - PullRequest
1 голос
/ 29 марта 2010

Я создал небольшой инсталлятор, который устанавливает файлы программы. Я запускаю установщик и все хорошо, запускаю установленный .exe и он просто исчезает. Я полагаю, при предоставлении прав администратора EXE запуска в Vista, и он работает. Но зачем это нужно? Это не может быть нормальным, не так ли?

Ответы [ 3 ]

4 голосов
/ 29 марта 2010

Возможно, ваше приложение аварийно завершает работу и никак не связано с Inno Setup. Имейте в виду, что если ваше приложение установлено на Program Files, оно может читать , но не может изменять файлы в каталоге установки без прав администратора.

Вместо этого следует использовать папку AppData\Roaming. Возможно, ваше приложение перевалило за необработанное исключение при записи в файл, а доступ к нему запрещен?

Edit:

Чтобы Inno удалил ограничивающие разрешения для вашего установочного каталога, добавьте следующее в ваш скрипт установки Inno:

[Dirs]
Name: "{app}\"; Permissions: everyone-modify
1 голос
/ 30 марта 2010

Если ваше приложение требует полных прав администратора для правильной работы, вы можете рассмотреть возможность объединения файла манифеста с исполняемым файлом, содержащим:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <v3:trustInfo xmlns:v3="urn:schemas-microsoft-com:asm.v3">
    <v3:security>
      <v3:requestedPrivileges>
        <v3:requestedExecutionLevel level="highestAvailable"/>
      </v3:requestedPrivileges>
    </v3:security>
  </v3:trustInfo>
</assembly>

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

1 голос
/ 29 марта 2010

Какую версию Inno Setup вы используете?

http://www.vincenzo.net/isxkb/index.php?title=Vista_considerations

Это означает, что вам нужно как минимум 5.3.7 для установок только для обычного пользователя. Он также определяет, что вы можете и не можете делать для стандартного пользовательского установщика.

...