Подтвердить что ты не робот

Сообщение "Возможно, эта программа не установлена ​​правильно" в Windows 7 RC

У меня есть программа установки, которая отлично работает под NT 5.x, Vista и Windows 7. Она содержит соответствующий манифест для UAC на NT 6.x.

Но начиная с Windows 7 RC, каждый раз, когда программа установки закрывается, Windows выдает ошибочное сообщение "Эта программа может быть неправильно установлена", даже если программа правильно установила без каких-либо проблем. Я никогда не получал эти ложные сообщения в Vista или в бета-версии Windows 7.

Я отправил отчет об ошибке в Microsoft, но не получил ответа. Я думал, что это может быть просто сбой в Windows 7 RC, но проблема все еще существует при новой установке одной из самых последних сборников RTM-escrow, которые были пропущены. У Microsoft нет никакой документации по этому поводу - даже не намек на то, что могло бы вызвать его.

Еще больше разочаровывает то, что я получаю сообщение "Эта программа, возможно, не была установлена ​​правильно", даже если я отменил установку на самом первом экране "Вы обязательно убедитесь, что вы хотите продолжить" перед любой установкой код (создание временного каталога, извлечение файлов, копирование, реестр и т.д.) выполняется.

Кто-нибудь понял это?

4b9b3361

Ответ 1

Хорошо, чтобы ответить на мой собственный вопрос, я нашел способ решить эту проблему. Я заметил, что в журнале изменений WinRAR указано, что самопроизводитель WinRAR также страдал от одной и той же проблемы и что он был решен. Поэтому я загрузил последнюю версию WinRAR и бросил ее в дизассемблер вместе с более ранней версией, ища новые вызовы API и т.д. Короче говоря, получается, что все, что было сделано, это добавить в манифест:

<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
  <application>
    <!--The ID below indicates application support for Windows Vista -->
      <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
    <!--The ID below indicates application support for Windows 7 -->
      <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
  </application>
</compatibility>

В некоторых ссылках на строки появились некоторые документы: по-видимому, это нечто новое, что было добавлено в Windows 7, и что документация для него была создана 20 мая. Это не помогло Microsoft не ссылаться на эту с любой из их страниц документации Win7, тем более, что это заметно. Вздох

Изменить: Это плохо документировано на MSDN здесь.

Ответ 2

Я столкнулся с тем же сообщением об ошибке при запуске нового приложения на основе Qt. Те же симптомы - получите это "полезное" сообщение после закрытия .exe, независимо от того, что сделала программа.

Теперь у меня есть различные проекты приложений qt, все они построены точно так же. И никто из других этого не делает.

Наконец-то я понял, что эта ошибка была вызвана исключительно тем, что я назвал этот конкретный проект "установщиком". Я закончил с бинарным "installer.exe", и это, без сомнения, имело бы название проекта, встроенное в него в другом месте (без вникания в файл проекта, созданный qmake, не совсем точно).

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

Ответ 3

Вы бросили Application Compatibility Toolkit в своем установщике?

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