2010-03-29 6 views
1

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

+0

Что произойдет, если вы установите приложение в Program Files с правами администратора и выполните его как обычно, через проводник? Все еще тихо умирает приложение? –

+0

Да, да. Я думаю, что это проблема с файловой записью. –

ответ

4

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

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

Edit:

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

[Dirs] 
Name: "{app}\"; Permissions: everyone-modify 
+0

Это не проблема Inno, но я ожидал, что установщик разобрался. Возможно, ссылка Джо. Проблема почти наверняка заключается в том, что приложение пытается изменить файл в своем собственном каталоге, который требует доступа администратора. –

+0

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

+0

Является ли Inno в состоянии сделать это даже в папках Windwos, таких как Program Files \ MyApp? –

1

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

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

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

+0

5.3.8 ... но, оказывается, мне нужна установка уровня администратора. Вопрос был без этого, я просто не знал, что .exe ему нужно ... а не жалуется, что он просто ушел. –

1

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

<?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, но если у вас уже есть исполняемый файл и вы хотите связать файл манифеста с ним, this article описывает лучшие практики при этом.

Смежные вопросы