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

С# - нужны ли файлы манифеста?

Мне интересно, нужны ли мне два файла манифеста, которые создаются при публикации моего приложения. Он работает, когда я удаляю их. В случае, когда они необходимы, я попытался внедрить (Project > Application > Embed manifest с настройкой по умолчанию), но они все еще являются внешними.

Это: (appname).exe.manifest и (appname).application.

4b9b3361

Ответ 1

Файл манифеста описывает, как должно работать ваше приложение. Из MSDN:

Каждая сборка, будь то статическая или динамическая, содержит набор данных, который описывает, как элементы в сборке связаны друг с другом. В манифесте сборки содержатся метаданные сборки. Манифест сборки содержит все метаданные, необходимые для указания требований к версии сборки и идентификатора безопасности, а также всех метаданных, необходимых для определения области сборки и разрешения ссылок на ресурсы и классы. Манифест сборки может быть сохранен в файле PE (.exe или .dll) с кодом промежуточного языка Microsoft (MSIL) или в автономном PE файле, который содержит только информацию манифеста сборки.

Так что удалить их, вероятно, неправильно, особенно если вы хотите, чтобы ваше приложение запускалось по умолчанию в Vista и далее.

Здесь приведены сведения из MSDN об использовании инструмента mt, который используется для встраивания манифеста в ваше приложение.

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

Ответ 2

Кроме того, Back, когда использовался VS2003, и вы хотите, чтобы ваши элементы управления больше походили на интерфейс XP, манифест будет содержать общие элементы управления с соответствующей версией 6.x, которая используется вместе с вашим приложением, затем графический интерфейс получает "приятный обновленный внешний вид XP" вместо старых неуклюжих элементов управления Windows 2000. По этой причине вы можете иметь манифест, внедренный как ресурс, поэтому вам не нужно привязывать файл манифеста (нормально, это довольно маленький файл), но тем не менее он упрощает распространение приложений.

А также была ошибка в среде выполнения .NET 1.1 (теперь она исправлена ​​в версии 2.0+), где, если манифест используется в вашем приложении, не удается обновить графический интерфейс, чтобы придать ему больше внешнего вида XP. Обходной путь в то время состоял в вызове Application.DoEvents перед выполнением Application.Run(new form());

Теперь, с Vista и Win 7, манифест используется для указания повышенных разрешений для обойти UAC, тем самым минимизируя вероятность появления Vista/Win 7 диалогового окна UAC.

Ответ 3

Необходимо с целью

с указанием требований к версии сборки и идентификации безопасности, и все метаданные, необходимые для определения объём сборки и решение ссылки на ресурсы и классы