Почему файл манифеста иногда играет решающую роль?

#windows #visual-studio #manifest

#Windows #visual-studio #манифест

Вопрос:

Я попытался скомпилировать код с сохранением компоновщика-> файл манифеста-> сгенерировать файл манифеста = Да на visual2015 код не работал для 64-разрядной Windows 10, но он отлично работал для 32-разрядной версии.

Затем я изменил свойство как компоновщик-> файл манифеста-> сгенерировать файл манифеста = Нет, теперь код работает нормально как для 32, так и для 64 бит.

Итак, мой вопрос, что происходит, когда я выполняю вышеуказанное изменение свойства? Как manifest file он играет свою роль во время выполнения?

Я пытался использовать Google, но не смог получить его полностью, поэтому помогите мне с этим.

Комментарии:

1. Манифест требуется для всех версий Windows за последние 10 лет. Он содержит информацию о конфигурации, помимо того, что можно сделать с форматом исполняемого файла PE. Самое главное, что он объявляет программу совместимой с UAC, без манифеста ОС рассматривает вашу программу как устаревшую программу, и у вас будут проблемы с файлами и разделами реестра. Проект на C всегда имеет зависимость от разрядности, просто небольшой угловой пример для чистой программы MSIL, созданной C /CLI (/clr:pure). «не сработало» не помогает нам помочь вам.

2. не сработало, означает, что я получаю сообщение об ошибке «Консоль управления Microsoft перестала работать».

3. Тьфу, для плагина MMC требуется DLL, а не EXE. Манифест имеет значение только для EXE. Используйте отладчик, чтобы выяснить причину сбоя, Проект> Свойства> Отладка> Команда = «mmc.exe «.

4. В WinDbg я не получаю никаких ошибок при остановке MMC. Он просто вылетает, не выдавая никаких ошибок в WinDbg.