Как предотвратить "Неправильная установка этой программы" на Vista
У меня есть исполняемый файл установки продукта, который копирует некоторые файлы на жесткий диск пользователя. Это не типичный установщик в обычном смысле (он ничего не добавляет в папки "Пуск" или "Папки программ" ).
Каждый раз, когда программа установки запускается в Vista, после завершения exe Vista создает диалоговое окно задачи:
- Возможно, эта программа не установлена правильно
- Переустановите, используя рекомендуемые настройки.
- Эта программа установлена правильно
Есть ли функция, которую мне нужно вызвать из exe или записи реестра для установки, чтобы указать операционной системе, что программа установлена правильно (или, по крайней мере, подавить это сообщение)?
Связанные вопросы: "Эта программа, возможно, не установлена правильно" сообщение в Windows 7 RC (для проблем с Windows 7)
Ответы
Ответ 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