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

Как предотвратить "Неправильная установка этой программы" на Vista

У меня есть исполняемый файл установки продукта, который копирует некоторые файлы на жесткий диск пользователя. Это не типичный установщик в обычном смысле (он ничего не добавляет в папки "Пуск" или "Папки программ" ).

Каждый раз, когда программа установки запускается в Vista, после завершения exe Vista создает диалоговое окно задачи:

  • Возможно, эта программа не установлена ​​правильно
  • Переустановите, используя рекомендуемые настройки.
  • Эта программа установлена ​​правильно

Есть ли функция, которую мне нужно вызвать из exe или записи реестра для установки, чтобы указать операционной системе, что программа установлена ​​правильно (или, по крайней мере, подавить это сообщение)?

Связанные вопросы: "Эта программа, возможно, не установлена ​​правильно" сообщение в Windows 7 RC (для проблем с Windows 7)

4b9b3361

Ответ 1

Вам нужно добавить некоторую информацию в раздел AppCompat реестра.

Смотрите эту ссылку и найдите "Как отключить предупреждение помощника по совместимости программ".

Также существует, по-видимому, метод, который включает добавление файла манифеста в исполняемый файл установки, чтобы обозначить его как "Vista-aware".

Ответ 2

Включите этот раздел в файл манифеста программы:

<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}"/>
    <!--The ID below indicates application support for Windows 8 -->
      <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
    <!--The ID below indicates application support for Windows 8.1 -->
      <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
    <!--The ID below indicates application support for Windows 10 -->
      <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>

  </application>
</compatibility>

Он отключит помощника по совместимости программ, заявив, что ваше приложение совместимо с Vista и Win 7.

Ответ 3

Первое, что вы должны попробовать, это добавить "манифест Vista" с запросомExecutionLevel

Если этого недостаточно (нажмите "Отменить при удалении с UAC и т.д." ), вам нужно использовать недокументированные материалы, например, установить поле версии изображения в PE-заголовке в 6.0

Ответ 4

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

Я не знаю, так ли это для вашего приложения, но стоит проверить.

Ответ 5

Похоже, для этого есть больше причин. Если вы переименовали свое приложение, запомните также имена в сборке, все они должны быть равны, иначе может появиться всплывающее окно "Эта программа, возможно, не установлена ​​правильно": -P введите описание изображения здесь

Также может быть изменен непосредственно в файле AssemblyInfo.vb/.cs