Вопрос

Манифесты приложений Windows имеют очень свободную грамматику — нераспознанные части игнорируются.Как я могу диагностировать, какие части распознаны, а какие нет?

Проблема, приводящая к этому вопросу, связана с приложением, которое имеет параллельный манифест UAC с Запрошенный уровень выполнения из Самый доступный указано.Это должно отключить виртуализацию файлов Vista, но этого не происходит.Я хочу выяснить, почему.Манифест используется, как я проверил, намеренно введя синтаксическую ошибку, но я не вижу способа определить, как он используется.

Это было полезно?

Решение

Смотрите мой комментарий к Wylder - вы пытались обновить временную метку исполняемого файла и манифеста?
Что возвращает "sxstrace", запускаемый из командной строки с повышенными правами?
Не могли бы вы где-нибудь разместить свой манифест?

Другие советы

У меня была похожая проблема:диспетчер задач показал, что виртуализация включена для запущенных приложений, несмотря на то, что приложения отображаются как наиболее доступные.Я пытался использовать mt.exe для манифеста своих файлов.Это сработало с некоторыми, но не с другими.Это странное поведение заставило меня подумать, что в Vista был какой-то постоянный кэш, который влиял на информацию UAC на основе метки времени exe.Решение состояло в том, чтобы использовать мастер манифеста из Тюнер ресурсов.

Там есть тайник.

Кэш контекста активации SxS кэширует файлы .manifest.

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

Он основан на памяти и очищается только при перезагрузке - ОДНАКО я точно знаю, что он не всегда очищается при перезагрузке, и многие другие также сообщают об этом.Я нашел c:\windows\sxs\manifestCache и задаюсь вопросом, действительно ли он перезагружается оттуда при перезагрузке.

Единственный способ принудительно изменить - это изменить дату изменения в .exe.

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

Ссылки:http://blogs.msdn.com/b/junfeng/archive/2006/10/25/touch-the-exe-after-you-added-a-manifest-for-it-in-vista.aspx http://blogs.msdn.com/b/junfeng/archive/2007/10/01/vista-activation-context-cache.aspx

Я бы рассмотрел через Документация чтобы убедиться, что это соответствует спецификации, но кроме этого, насколько мне известно, не существует автоматизированного инструмента для выполнения того же самого.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top