Изменить манифест приложения windows

Как изменить манифест в исполняемом файле?

У меня два исполняемых файла, первый — второй. Второй — с различными типами манифестаций: asInvoker , requireAdministrator и т.д.
Можно ли изменить манифест исполняемого файла? Я ищу простое решение на C
Я бы хотел не хранить несколько экземпляров исполняемого файла с различными типами манифестаций, а не поддерживать инструмент сторонних разработчиков, который мог бы его изменить. Кстати, это возможно, и этот инструмент существует: MT (инструмент манифеста) из пакета visual studio, link.

Да, вы можете изменить файл манифеста с помощью mt.exe из Win32 SDK. Но это только то, что вы должны делать во время разработки или тестирования. Вы не можете развернуть этот инструмент на машине клиента, поэтому вы не можете использовать его для динамического изменения манифеста взад и вперед.

Но это нормально, потому что вам никогда не нужно менять файл манифеста взад и вперед во время выполнения. Файл исполняемого файла манифеста должен указывать минимальные требуемые привилегии для этого EXE. Таким образом, если пользователь может запустить EXE без административных привилегий (т.е. Без повышения) — даже если это означает, что приложение работает с ограниченной функциональностью — манифест приложения должен указывать «asInvoker». Пользователь может всегда выбирать для запуска приложения с правами администратора, если им нужны эти дополнительные функции.

И, конечно же, вы можете запускать EXE программно с повышением. Вы делаете это с помощью ShellExecuteEx , указывая глагол «runas» для параметра lpVerb . Это будет иметь такой же эффект, как установка уровня разрешений в манифесте приложения на «requireAdministrator».

С вашего вопроса не совсем ясно, как настроено ваше приложение. Обычно первый EXE имеет «asInvoker» в своем манифесте, чтобы любой пользователь мог его запустить. Для этого не нужны административные привилегии. Однако, если есть что-то, что может потребоваться для этого, требуются административные привилегии, он отображает некоторый бит пользовательского интерфейса с значком экрана UAC, и при нажатии на него запускается второй EXE (с установленным в манифесте «requireAdministrator»), который выполняет все задача требует повышения. Это второе приложение не нужно распространять в форме «asInvoker», потому что для него всегда требуется повышение. Вы заметите, что именно так настроены все приложения Microsoft, включая биты, поставляемые с операционной системой.

Практическое руководство. Повторное подписание манифестов приложения и развертывания How to: Re-sign application and deployment manifests

После внесения изменений в свойства развертывания в манифесте приложения для Windows Forms приложений, Windows Presentation Foundation приложений (XBAP) или решений Office необходимо повторно подписать манифесты приложения и развертывания с помощью сертификата. After you make changes to deployment properties in the application manifest for Windows Forms applications, Windows Presentation Foundation applications (xbap), or Office solutions, you must re-sign both the application and deployment manifests with a certificate. Этот процесс позволяет проверить, не установлены ли на компьютер конечного пользователя измененные злоумышленниками файлы. This process helps ensure that tampered files are not installed on end user computers.

Другой сценарий, в котором вы можете повторно подписать манифесты, — когда ваши клиенты хотят подписать манифесты приложения и развертывания с помощью собственного сертификата. Another scenario where you might re-sign the manifests is when your customers want to sign the application and deployment manifests with their own certificate.

Повторное подписывание манифестов приложения и развертывания Re-sign the Application and Deployment Manifests

В этой процедуре предполагается, что вы уже внесли изменения в файл манифеста приложения (manifest). This procedure assumes that you have already made changes to your application manifest file (.manifest). Дополнительные сведения см. в разделе инструкции. изменение свойств развертывания. For more information, see How to: Change deployment properties.

Повторное подписание манифестов приложения и развертывания с помощью Mage.exe To re-sign the application and deployment manifests with Mage.exe

Откройте окно командной строки Visual Studio . Open a Visual Studio Command Prompt window.

Измените каталоги на папку, содержащую файлы манифеста, которые необходимо подписать. Change directories to the folder that contains the manifest files that you want to sign.

Введите следующую команду, чтобы подписать файл манифеста приложения. Type the following command to sign the application manifest file. Замените манифестфиленаме именем файла манифеста и расширением. Replace ManifestFileName with the name of your manifest file plus the extension. Замените Certificate на относительный или полный путь к файлу сертификата и замените Password паролем для сертификата. Replace Certificate with the relative or fully qualified path of the certificate file and replace Password with the password for the certificate.

Например, можно выполнить следующую команду, чтобы подписать манифест приложения для надстройки, приложения Windows Form или приложения Windows Presentation Foundation браузера. For example, you could run the following command to sign an application manifest for an add-in, a Windows Form application, or a Windows Presentation Foundation browser application. Временные сертификаты, созданные Visual Studio, не рекомендуются для развертывания в рабочих средах. Temporary certificates created by Visual Studio are not recommended for deployment into production environments.

Введите следующую команду, чтобы обновить файл манифеста развертывания и подписать его, заменив имена заполнителей, как на предыдущем шаге. Type the following command to update and sign the deployment manifest file, replacing the placeholder names as in the previous step.

Например, можно выполнить следующую команду, чтобы обновить и подписать манифест развертывания для надстройки Excel, приложения Windows Forms или приложения Windows Presentation Foundation браузера. For example, you could run the following command to update and sign a deployment manifest for an Excel add-in, a Windows Forms application, or a Windows Presentation Foundation browser application.

Читайте также:  Nearby sharing windows 10 это

Обновление и повторное подписание манифестов приложения и развертывания Update and re-sign the application and deployment manifests

В этой процедуре предполагается, что вы уже внесли изменения в файл манифеста приложения (manifest), но есть и другие файлы, которые были обновлены. This procedure assumes that you have already made changes to your application manifest file (.manifest), but that there are other files that were updated. При обновлении файлов также необходимо обновить хэш, представляющий файл. When files are updated, the hash that represents the file must also be updated.

Обновление и повторное подписание манифестов приложения и развертывания с помощью Mage.exe To update and re-sign the application and deployment manifests with Mage.exe

Откройте окно командной строки Visual Studio . Open a Visual Studio Command Prompt window.

Измените каталоги на папку, содержащую файлы манифеста, которые необходимо подписать. Change directories to the folder that contains the manifest files that you want to sign.

Удалите расширение . deploy из файлов в выходной папке публикации. Remove the .deploy file extension from the files in the publish output folder.

Введите следующую команду, чтобы обновить манифест приложения новыми хэшами для обновленных файлов и подписать файл манифеста приложения. Type the following command to update the application manifest with the new hashes for the updated files and sign the application manifest file. Замените манифестфиленаме именем файла манифеста и расширением. Replace ManifestFileName with the name of your manifest file plus the extension. Замените Certificate на относительный или полный путь к файлу сертификата и замените Password паролем для сертификата. Replace Certificate with the relative or fully qualified path of the certificate file and replace Password with the password for the certificate.

Например, можно выполнить следующую команду, чтобы подписать манифест приложения для надстройки, приложения Windows Form или приложения Windows Presentation Foundation браузера. For example, you could run the following command to sign an application manifest for an add-in, a Windows Form application, or a Windows Presentation Foundation browser application. Временные сертификаты, созданные Visual Studio, не рекомендуются для развертывания в рабочих средах. Temporary certificates created by Visual Studio are not recommended for deployment into production environments.

Введите следующую команду, чтобы обновить файл манифеста развертывания и подписать его, заменив имена заполнителей, как на предыдущем шаге. Type the following command to update and sign the deployment manifest file, replacing the placeholder names as in the previous step.

Например, можно выполнить следующую команду, чтобы обновить и подписать манифест развертывания для надстройки Excel, приложения Windows Forms или приложения Windows Presentation Foundation браузера. For example, you could run the following command to update and sign a deployment manifest for an Excel add-in, a Windows Forms application, or a Windows Presentation Foundation browser application.

Добавьте расширение . deploy обратно в файлы, кроме файлов манифеста приложения и развертывания. Add the .deploy file extension back to the files, except the application and deployment manifest files.

Схема манифеста пакета приложений для Windows 8 Windows 8 app package manifest schema

Эта ссылка предоставляет сведения для каждого элемента, атрибута и типа данных, определяющего схему манифеста пакета приложения для приложений UWP. This reference provides details for each element, attribute, and data type that defines the schema for the app package manifest for UWP apps. Файл определения схемы — Аппксманифестсчема. xsd. The schema definition file is AppxManifestSchema.xsd.

В следующей таблице перечислены все элементы этой схемы, отсортированные в алфавитном порядке по имени. The following table lists all of the elements in this schema, sorted alphabetically by name.

Объявляет класс среды выполнения, связанный с точкой расширения. Declares a runtime class associated with the extensibility point.

Объявляет класс среды выполнения, связанный с точкой расширения. Declares a runtime class associated with the extensibility point.

Определяет атрибут класса, который хранится в хранилище свойств среда выполнения Windows. Defines an attribute of the class that is stored in the Windows Runtime property store.

Представляет приложение, включающее часть или все функции, предоставляемые в пакете. Represents an app that comprises part of or all of the functionality delivered in the package.

Указывает, какие страницы в веб-контексте имеют доступ к устройствам географического расположения системы (если у приложения есть разрешение на доступ к этой возможности) и доступ к буферу обмена. Specifies which pages in the web context have access to the system’s geolocation devices (if the app has permission to access this capability) and access to the clipboard.

Представляет одно или несколько приложений, составляющих пакет. Represents one or more apps that comprise the package.

Указывает список аргументов, разделенных запятыми, для передачи в исполняемый файл. Specifies the list of comma-separated arguments to pass to the executable.

Объявляет точку расширения приложения типа Windows. аутоплайконтент. Declares an app extensibility point of type windows.autoPlayContent. Приложение предоставляет указанные действия по автозапуску содержимого. The app provides the specified AutoPlay content actions.

Объявляет точку расширения приложения типа Windows. аутоплайдевице. Declares an app extensibility point of type windows.autoPlayDevice. Приложение предоставляет указанные действия для автозапуска устройства. The app provides the specified AutoPlay device actions.

Определяет точку расширяемости приложения типа Windows. баккграундтаскс. Defines an app extensibility point of type windows.backgroundTasks. Фоновые задачи выполняются на выделенном фоновом узле. то есть без пользовательского интерфейса. Background tasks run in a dedicated background host; that is, without a UI.

Объявляет доступ к защищенным ресурсам пользователя, которые требуются для пакета. Declares the access to protected user resources that the package requires.

Объявляет возможности, необходимые для пакета. Declares a capability required by a package.

Сертификат для использования с пакетом и помещается в хранилища системных сертификатов. A certificate for use with the package and placed in the system certificate stores.

Объявляет точку расширения пакета типа Windows. Certificates. Declares a package extensibility point of type windows.certificates. Приложению требуется один или несколько сертификатов из указанных хранилищ сертификатов. The app requires one or more certificates from the specified certificate stores.

Указывает формат пакета данных, например текстовый или HTML-формат, который может совместно использоваться приложением. Specifies a data package format such as text or HTML format that the app can share. Он уникален для каждого приложения в пакете и учитывает регистр. It is unique per application in the package and is case sensitive.

Плитка по умолчанию, представляющая приложение на начальном экране. The default tile that represents the app on the Start screen. Эта плитка отображается при первой установке приложения до получения уведомлений об обновлениях. This tile is displayed when the app is first installed, before it has received any update notifications. Если плитка не содержит уведомлений для показа, плитка возвращается к этому по умолчанию. When a tile has no notifications to show, the tile reverts to this default.

Объявляет другие пакеты, от которых зависит пакет, для завершения программного обеспечения. Declares other packages that a package depends on to complete its software.

Понятное описание, которое может отображаться для пользователей. A friendly description that can be displayed to users.

Объявляет возможности устройства, необходимые для пакета. Declares a device capability required by a package.

Понятное имя, которое может отображаться для пользователей. A friendly name that can be displayed to users.

Указывает тип сведений, отображаемых пользователю при открытии файла, связанного с точкой расширения. Specifies the type of info the user sees when opening a file associated to the extensibility point.

Объявляет точку расширения для приложения. Declares an extensibility point for the app.

Объявляет точку расширения для пакета. Declares an extensibility point for the package.

Определяет одну или несколько точек расширяемости для приложения. Defines one or more extensibility points for the app.

Определяет одну или несколько точек расширения для пакета. Defines one or more extensibility points for the package.

Объявляет точку расширения приложения типа Windows. филеопенпиккер. Declares an app extensibility point of type windows.fileOpenPicker. Приложение позволяет пользователю выбрать и открыть указанные типы файлов. The app lets the user choose and open the specified types of files.

Объявляет точку расширения приложения типа Windows. филесавепиккер. Declares an app extensibility point of type windows.fileSavePicker. Приложение позволяет пользователю выбрать имя файла, расширение и место хранения для указанных типов файлов. The app lets the user choose the file name, extension, and storage location for the specified types of files.

Поддерживаемый тип файла, указанный в качестве расширения типа файла. A supported file type specified as its file type extension.

Тип файла, указанный в качестве расширения типа файла. A file type specified as its file type extension. Он уникален для каждого приложения в пакете и учитывает регистр. It is unique per application in the package and is case sensitive.

Объявляет точку расширения приложения типа Windows. филетипеассоЦиатион. Declares an app extensibility point of type windows.fileTypeAssociation. Сопоставление типов файлов указывает, что приложение зарегистрировано для работы с файлами указанных типов. A file type association indicates that the app is registered to handle files of the specified types.

Указывает, является ли пакет пакетом платформы; то есть пакет, который может использоваться другими пакетами. Indicates whether the package is a framework package; that is, a package that can be used by other packages. По умолчанию его значение равно false . Its value is false by default. Не следует указывать значение для него, если не создается платформа. You should not specify a value for it unless you are creating a framework.

Объявляет точку расширения пакета типа Windows. гамиксплорер. Declares a package extensibility point of type windows.gameExplorer.

Определяет глобальный уникальный идентификатор для пакета. Defines a globally unique identifier for a package. Удостоверение пакета представлено в виде кортежа атрибутов пакета. A package identity is represented as a tuple of attributes of the package.

Объявляет точку расширения пакета типа Windows. активатаблекласс. инпроцесссервер. Declares a package extensibility point of type windows.activatableClass.inProcessServer. Приложение использует библиотеку динамической компоновки (DLL), которая предоставляет один или несколько классов активируемого. The app uses a dynamic link library (DLL) that exposes one or more activatable classes.

Определяет строку, которая предоставляет пользователю дополнительные сведения о типе файла. Defines a string that provides additional info to the user about the file type.

Описывает ориентацию, в которой приложение предпочитается для наилучшего взаимодействия с пользователем. Describes the orientations in which the app would prefer to be shown for the best user experience. На устройстве, которое можно поворачивать, например планшете, приложение не будет перерисовано для ориентации, не указанных здесь. On a device that can be rotated, such as a tablet, the app will not be redrawn for orientations that are not specified here. Например, если в приложении заданы только альбомные и Ландскапефлиппедные ориентации, а устройство поворачивается в книжную ориентацию, приложение не будет вращаться. For instance, if the app specifies only Landscape and LandscapeFlipped orientations, and the device is rotated to a Portrait orientation, the app will not rotate.

Обратите внимание, что на устройствах, которые невозможно поворачивать, приложение может отображаться на ориентации этого устройства по умолчанию, а предпочтительная ориентация приложения будет пропущена. Note that on devices that can’t be rotated, an app might be shown in that device’s default orientation and the app’s preferred orientation will be ignored. Однако на устройстве, на котором активирована блокировка вращения, предпочтительное вращение вашего приложения по-прежнему будет учитываться. However, on a device with a rotation lock activated, your app’s preferred rotation will still be honored.

Эти параметры ориентации применяются как к [экрану-заставке] (element-SplashScreen.md), так и к пользовательскому интерфейсу приложения при запуске нового сеанса для приложения. These orientation preference choices apply to both the [splash screen](element-splashscreen.md) and the app UI when a new session is launched for your app. Во время выполнения параметры можно изменить с помощью свойства [AutoRotationPreferences] (/УВП/АПИ/Виндовс.Графикс.дисплай.дисплайпропертиес). The preferences can be changed during run time through the [AutoRotationPreferences](/uwp/api/Windows.Graphics.Display.DisplayProperties) property.

Указывает, запускается ли исполняемый объект как один экземпляр или может запускаться как несколько экземпляров. Specifies whether the executable runs as a single instance or can run as multiple instances.

Объявляет интерфейс, связанный с прокси-сервером. Declares an interface associated with the proxy.

Описывает действие автовоспроизведения содержимого. Describes an AutoPlay content action.

Описывает действие устройства автозапуска. Describes an AutoPlay device action.

Определяет значок и уведомления, представляющие приложение на экране блокировки, которое отображается, когда система заблокирована. Defines the badge and notifications that represent the app on the lock screen, which is shown when the system is locked.

Путь к файлу, содержащему изображение. A path to a file that contains an image.

Он должен быть заполнен разработчиком с самой высокой версией Windows, на которой был протестирован пакет. This should be filled in by the developer with the highest version of Windows that the package was tested on. Это обязательное поле. This field is required. Windows не будет блокировать установку пакета в версиях ОС выше, чем указано в этом поле. Windows will not block installation of the package on versions of the OS higher than the value provided in this field. При выполнении приложения Windows будет сравнивать это поле с фактической версией ОС. When an app is executed, Windows will compare this field to the actual OS version. Если значение, указанное в этом поле, меньше текущей версии ОС, Windows может обеспечить совместимость с максимальной протестированной версией ОС для некоторых или всех API-интерфейсов. If the value provided in this field is less than the current OS version, Windows may provide behavior compatible with the highest tested OS version for some or all APIs. Если значение, указанное в этом поле, больше или равно текущей версии ОС, Windows не будет применять изменения совместимости к API. If the value provided in this field is greater than or equal to the current OS version, Windows will not apply any compatibility changes to APIs.

Минимальная версия операционной системы, необходимая для пакета. The minimum version of the operating system that the package requires.

Объявляет точку расширения пакета типа Windows. активатаблекласс. аутофпроцесссервер. Declares a package extension point of type windows.activatableClass.outOfProcessServer. Приложение использует исполняемый файл (EXE), который предоставляет один или несколько классов активируемого. The app uses an executable (EXE) that exposes one or more activatable classes.

Определяет корневой элемент манифеста пакета приложения. Defines the root element of an app package manifest. Манифест описывает структуру и возможности программного обеспечения для системы. The manifest describes the structure and capabilities of the software to the system.

Объявляет зависимость от другого пакета, помеченного как пакет платформы. Declares a dependency on another package that is marked as a framework package.

Путь к исполняемому файлу. The path to the executable.

Путь к библиотеке DLL. The path to the DLL.

Объявляет минимальные требования к операционной системе и программному обеспечению, которые должны существовать, чтобы пакет был применим к системе. Declares the minimum operating system and software requirements that must exist for the package to be applicable to the system.

Определяет дополнительные метаданные пакета, включая атрибуты, которые описывают, как пакет отображается для пользователей. Defines additional metadata about the package including attributes that describe how the package appears to users.

Объявляет точку расширяемости приложения типа Windows. Protocol. Declares an app extensibility point of type windows.protocol. Ассоциация URI указывает, что приложение зарегистрировано для управления URI с указанной схемой. A URI association indicates that the app is registered to handle URIs with the specified scheme.

Объявляет точку расширения пакета типа Windows. активатаблекласс. проксистуб. Declares a package extensibility point of type windows.activatableClass.proxyStub. Прокси-сервер может состоять из одного или нескольких интерфейсов. A proxy can be composed of one or more interfaces.

Понятное имя издателя, которое может быть отображено пользователям. A friendly name for the publisher that can be displayed to users.

Объявляет язык для ресурсов, содержащихся в пакете. Declares a language for resources contained in the package.

Объявляет языки для ресурсов, содержащихся в пакете. Declares languages for the resources that the package contains. Каждый пакет должен объявлять по крайней мере один язык для ресурсов. Every package must declare at least one language for resources.

Задает одну ориентацию ротации, в которой будет отображаться приложение. Specifies a single rotational orientation in which an app will display.

Указывает, какие страницы в веб-контексте имеют доступ к устройствам географического расположения системы (если у приложения есть разрешение на доступ к этой возможности) и доступ к буферу обмена. Specifies which pages in the web context have access to the system’s geolocation devices (if the app has permission to access this capability) and access to the clipboard.

Определяет критерии выбора для сертификатов, определенных для пакета. Defines selection criteria for the certificates defined for the package.

Объявляет точку расширения приложения типа Windows. шаретаржет. Declares an app extension point of type windows.shareTarget. Приложение может совместно использовать указанные типы файлов. The app can share the specified types of files.

Определяет внешний вид экрана-заставки, отображаемого приложением во время запуска. Defines the appearance of the splash screen, which is displayed by the app during launch.

Определяет типы файлов, к которым может предоставить доступ приложение. Defines the file types that the app can share.

Определяет типы файлов, связанные с приложением. Defines the file types associated with the app. Они уникальны для каждого пакета и чувствительны к регистру. They are unique per package and are case sensitive.

Указывает, поддерживаются ли для общего доступа все типы файлов. Indicates whether all file types are supported for sharing.

Фоновая задача, связанная с точкой расширения приложения. The background task associated with the app extensibility point.

Указывает, являются ли сертификаты для пакета эксклюзивными для пакета. Indicates whether the certificates for the package are exclusive to the package.

Описание визуальных аспектов приложения UWP: его плитки по умолчанию, изображения логотипа, цвета текста и фона, начальная ориентация экрана, экран-заставка и внешний вид плитки экрана блокировки. Describes the visual aspects of the UWP app: its default tile, logo images, text and background colors, initial screen orientation, splash screen, and lock screen tile appearance.

Читайте также:  Insta 360 приложение windows 10
Оцените статью
Элемент Element Описание Description
Активатаблекласс (тип: CT_InProcessActivatableClass) ActivatableClass (type: CT_InProcessActivatableClass)