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

29

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

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

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

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

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

Вопрос легального программиста IMO. Если бы я должен был создать установщик, я бы хотел, чтобы он соответствовал надлежащим критериям установки Windows 7. AlbertoPL
Извините, я должен был уточнить: когда я сказал: «У меня есть установщик», я имел в виду «Я установил установщик с помощью C», поэтому это происходит при переполнении стека, а не сбое сервера. kliu
Это ниже на ServerFault? Stephen Darlington

Ваш Ответ

3   ответа
29

чтобы ответить на мой собственный вопрос, я нашел способ решить эту проблему. Я заметил, что журнал изменений 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, тем более это заметно.sigh

Edit: Это плохо документировано на MSDNВот.

Error: User Rate Limit Exceededmsdn.microsoft.com/en-us/library/dd371711(VS.85).aspxError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
1

Набор средств для обеспечения совместимости приложений у вашего установщика?

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

Error: User Rate Limit Exceeded
3

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

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

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

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

Похожие вопросы