7zip - самораспаковывающиеся исполняемые файлы требуют прав администратора и вызывают предупреждение о совместимости
Когда я создаю самораспаковывающиеся архивные исполняемые файлы для Windows с помощью 7zip,.EXE запускает UAC в Windows7. И часто после распаковки я получаю это:

Я использую командную строку как: 7z a -sfx7z.sfx dir\, Почему это происходит, и могу ли я их исправить?
2 ответа
Вы можете отключить это предупреждение, если это так, выполните следующие действия.
- Откройте диспетчер служб (нажмите

+R, типservices.mscи нажмите Enter). - Ищи
Program Compatibility Assistance Serviceв списке. - Щелкните правой кнопкой мыши по этой услуге и выберите
Stop, - Теперь снова щелкните правой кнопкой мыши на
Program Compatibility Assistance Serviceи выберитеProperties, - Под
Generalвкладка вStartup typeнажмите раскрывающееся меню и выберитеDisabled, - Нажмите на
ApplyзатемOK,
Примечание. Помощник по совместимости программ контролирует программы на наличие известных проблем совместимости и может быть очень полезным для конечных пользователей. Этот совет предназначен для опытных пользователей.
Другая probable solution чтобы встроить файл манифеста, чтобы избежать этого предупреждения. Что-то вроде этого:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!--The ID below indicates application support for Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
</application>
</compatibility>
</assembly>
Как встроить application manifest в мой исполняемый файл?
Вы можете использовать эту утилиту (mt.exe - при условии, что у вас установлен sdk) от Microsoft, чтобы сделать это. Вы бы использовали подобную команду, как это:
mt.exe -manifest "foo.manifest" -outputresource:"foo.exe";#1
Другие соображения
- Рассмотрите возможность использования этой программы (
7z SFX-Creator), согласно этой странице: созданные самораспаковывающиеся архивы больше не будут вызывать оповещение PCA. - Посмотрите, может ли IExpress быть вам полезен

Ваш самораспаковывающийся архив, вероятно, содержит setup или же install в его имени файла. В этом случае Windows ожидает, что установит приложение.
Если Windows не обнаруживает "обычную активность установщика", она предполагает, что установка не удалась из-за отсутствия прав администратора. По этой причине он предлагает перезапустить установку с использованием рекомендуемых настроек с повышенными привилегиями.
Эта эвристика используется там, где исполняемый файл не имеет requestedExecutionLevel элемент в его манифесте.
Эти проблемы могли быть исправлены в более новой версии самораспаковывающегося модуля 7zip.