Mage.exe (средство создания и редактирования манифеста)Mage.exe (Manifest Generation and Editing Tool)

Инструмент создания и изменения манифестов (Mage.exe) — это программа командной строки, обеспечивающая создание и изменение манифестов приложений и развертываний.The Manifest Generation and Editing Tool (Mage.exe) is a command-line tool that supports the creation and editing of application and deployment manifests. Как средство командной строки Mage.exe можно запустить из пакетных сценариев и других приложений Windows, включая приложения ASP.NET.As a command-line tool, Mage.exe can be run from both batch scripts and other Windows-based applications, including ASP.NET applications.

Вместо программы Mage.exe можно также использовать графическое приложение MageUI.exe.You can also use MageUI.exe, a graphical application, instead of Mage.exe. Для получения дополнительной информации см. MageUI.exe (Manifest Generation and Editing Tool, Graphical Client).For more information, see MageUI.exe (Manifest Generation and Editing Tool, Graphical Client).

Эта программа автоматически устанавливается вместе с Visual Studio.This tool is automatically installed with Visual Studio. Для запуска средства используйте командную строку разработчика Visual Studio.To run the tool, use Developer Command Prompt for Visual Studio. Дополнительные сведения см. в разделе Командные строки.For more information, see Command Prompts.

В Visual Studio входят две версии Mage.exe и MageUI.exe.Two versions of Mage.exe and MageUI.exe are included with Visual Studio. Чтобы просмотреть сведения о версии, запустите программу MageUI.exe, откройте меню Справка и выберите пункт О программе.To see version information, run MageUI.exe, select Help, and select About. В данной документации представлено описание программ Mage.exe и MageUI.exe версии 4.0.x.x.This documentation describes version 4.0.x.x of Mage.exe and MageUI.exe.

СинтаксисSyntax

Mage [commands] [commandOptions]

ПараметрыParameters

В следующей таблице показаны команды, поддерживаемые программой Mage.exe.The following table shows the commands supported by Mage.exe. Дополнительные сведения о параметрах этих команд см. в разделах Параметры команд "New" и "Update" и Параметры команды "Sign".For more information about the options supported by these commands, see New and Update command options and Sign command options.

КомандаCommand ОПИСАНИЕDescription
-cc, ClearApplicationCache-cc, ClearApplicationCache Очищает кэш загруженных интерактивных приложений.Clears the downloaded application cache of all online-only applications.
-n, -New fileType [newOptions]-n, -New fileType [newOptions] Создает новый файл заданного типа.Creates a new file of the given type. Допустимыми являются следующие типы:Valid types are:

- Deployment: Создает новый манифест развертывания.- Deployment: Creates a new deployment manifest.
- Application: Создает новый манифест приложения.- Application: Creates a new application manifest.

Если для этой команды не заданы никакие дополнительные параметры, она создаст файл соответствующего типа, с соответствующими тегами по умолчанию и значениями атрибутов.If you do not specify any additional parameters with this command, it will create a file of the appropriate type, with appropriate default tags and attribute values.

Чтобы задать имя и путь для нового файла, используется параметр -ToFile (см. в следующей таблице).Use the -ToFile option (see in the following table) to specify the file name and path of the new file.

Чтобы создать манифест приложения со всеми сборками приложения, добавленными в раздел <dependency> манифеста, используется параметр -FromDirectory (см. в следующей таблице).Use the -FromDirectory option (see in the following table) to create an application manifest with all of the assemblies for an application added to the <dependency> section of the manifest.
-u, -Update [filePath] [updateOptions]-u, -Update [filePath] [updateOptions] Вносит одно или несколько изменений в файл манифеста.Makes one or more changes to a manifest file. Задавать тип редактируемого файла не требуется.You do not have to specify the type of file that you are editing. Программа Mage.exe проверит файл, используя набор эвристик, и определит, является ли он манифестом развертывания или манифестом приложения.Mage.exe will examine the file by using a set of heuristics and determine whether it is a deployment manifest or an application manifest.

Если файл уже подписан с помощью сертификата, при использовании параметра -Update блок подписи ключа будет удален.If you have already signed a file with a certificate, -Update will remove the key signature block. Это обусловлено тем, что подпись ключа содержит хэш файла и изменение файла делает хэш недействительным.This is because the key signature contains a hash of the file, and modifying the file renders the hash invalid.

Чтобы задать имя и путь нового файла вместо перезаписи существующего файла, используется параметр -ToFile (см. в следующей таблице).Use the -ToFile option (see in the following table) to specify a new file name and path instead of overwriting the existing file.
-s, -Sign [signOptions]-s, -Sign [signOptions] Использует для подписывания файла пару ключей или сертификат X509.Uses a key pair or X509 certificate to sign a file. Подписи вставляются в файлы в виде XML-элементов.Signatures are inserted as XML elements inside of the files.

При подписывании манифеста, задающего значение -TimestampUri , необходимо подключение к Интернету.You must be connected to the Internet when signing a manifest that specifies a -TimestampUri value.
-ver, -Verify [имя файла манифеста]-ver, -Verify [manifest-filename] Проверяет, правильно ли подписан манифест.Verifies that the manifest is signed correctly. Невозможно использовать с другими командами.Cannot be combined with other commands.

Доступна в .NET Framework 4.7 и более поздних версиях.Available in .NET Framework 4.7 and later versions.
-h, -?, -Help [verbose]-h, -?, -Help [verbose] Описывает все доступные команды и их параметры.Describes all of the available commands and their options. Задайте параметр verbose , чтобы получить подробные справочные сведения.Specify verbose to get detailed help.

Параметры команд "New" и "Update"New and Update command options

В следующей таблице приведены параметры команд -New и -Update:The following table shows the options supported by the -New and -Update commands:

ПараметрыOptions Значение по умолчаниюDefault Value ПрименениеApplies To ОПИСАНИЕDescription
-a, -Algorithm-a, -Algorithm sha1RSAsha1RSA Манифесты приложений.Application manifests.

Манифесты развертывания.Deployment manifests.
Определяет алгоритм создания дайджестов зависимостей.Specifies the algorithm to generate dependency digests with. Допустимые значения: "sha256RSA" или "sha1RSA".Value must be "sha256RSA" or "sha1RSA.

Используется вместе с параметром "-Update".Use with the "-Update" option. При использовании параметра "-Sign" этот параметр не учитываетсяThis option is ignored when using the "-Sign" option
-appc, -AppCodeBase manifestReference-appc, -AppCodeBase manifestReference Манифесты развертывания.Deployment manifests. Вставляет в файл манифеста приложения ссылку на URL-адрес или путь к файлу.Inserts a URL or file path reference to the application manifest file. Этим значением должен быть полный путь к манифесту приложения.This value must be the full path to the application manifest.
-appm, -AppManifest manifestPath-appm, -AppManifest manifestPath Манифесты развертывания.Deployment manifests. Вставляет ссылку на манифест приложения в соответствующий манифест развертывания.Inserts a reference to a deployment's application manifest into its deployment manifest.

Файл, указанный в manifestPath, должен существовать, в противном случае программа Mage.exe выдаст ошибку.The file indicated by manifestPath must exist, or Mage.exe will issue an error. Если файл, указанный в manifestPath, не является манифестом приложения, программа Mage.exe выдаст ошибку.If the file referenced by manifestPath is not an application manifest, Mage.exe will issue an error.
-cf, -CertFile filePath-cf, -CertFile filePath Все типы файлов.All file types. Задает местонахождение цифрового сертификата X509 для подписания манифеста или файла лицензии.Specifies the location of an X509 digital certificate for signing a manifest or license file. Этот параметр может использоваться в сочетании с параметром -Password, если для сертификата требуется пароль файлов обмена персональными данными (PFX).This option can be used in conjunction with the -Password option if the certificate requires a password for Personal Information Exchange (PFX) files. Начиная с .NET Framework 4.7, при отсутствии закрытого ключа в файле требуется сочетание параметров -CryptoProvider и -KeyContainer.Starting with .NET Framework 4.7, if the file does not contain a private key, a combination of the -CryptoProvider and -KeyContainer options is required.

Начиная с .NET Framework 4.6.2, Mage.exe подписывает манифесты с использованием сертификатов CNG и CAPI.Starting with .NET Framework 4.6.2, Mage.exe signs manifests with CNG as well as CAPI certificates.
-ch, -CertHash hashSignature-ch, -CertHash hashSignature Все типы файлов.All file types. Хэш цифрового сертификата, хранящегося в хранилище личных сертификатов на клиентском компьютере.The hash of a digital certificate stored in the personal certificate store of the client computer. Соответствует строке отпечатка цифрового сертификата, отображаемого в консоли сертификатов Windows.This corresponds to the Thumbprint string of a digital certificate viewed in the Windows Certificates Console.

ПараметрhashSignature может быть задан или в верхнем, или в нижнем регистре, и может предоставляться либо как единая строка, либо в виде всех октетов отпечатка, разделенных пробелами, и всего отпечатка, заключенного в кавычки.hashSignature can be either uppercase or lowercase, and can be supplied either as a single string, or with each octet of the Thumbprint separated by spaces and the entire Thumbprint enclosed in quotation marks.
-csp, -CryptoProvider provider-name-csp, -CryptoProvider provider-name Все типы файлов.All file types. Указывает имя поставщика служб шифрования (CSP), содержащего контейнер закрытого ключа.Specifies the name of a cryptographic service provider (CSP) that contains the private key container. Для этого параметра требуется параметр -KeyContainer.This option requires the -KeyContainer option.

Данный параметр доступен, начиная с .NET Framework 4.7.This option is available starting with .NET Framework 4.7.
-fd, -FromDirectory directoryPath-fd, -FromDirectory directoryPath Манифесты приложений.Application manifests. Заполняет манифест приложения описаниями всех сборок и файлов, найденных в каталоге directoryPathи всех его подкаталогах, где directoryPath — это каталог, содержащий развертываемое приложение.Populates the application manifest with descriptions of all assemblies and files found in directoryPath, including all subdirectories, where directoryPath is the directory that contains the application that you want to deploy. Для каждого файла в этом каталоге Mage.exe определяет, является ли такой файл сборкой или статическим файлом.For each file in the directory, Mage.exe decides whether the file is an assembly or a static file. Если файл является сборкой, программа добавляет в приложение тег <dependency> и атрибут installFrom , указав имя, базу кода и версию сборки.If it is an assembly, it adds a <dependency> tag and installFrom attribute to the application with the assembly's name, code base, and version. Если это статический файл, программа добавляет тег <file> .If it is a static file, it adds a <file> tag. Mage.exe также будет использовать простой набор эвристик, чтобы определить главный исполняемый файл приложения, и пометит его в манифесте как точку входа приложения ClickOnce.Mage.exe will also use a simple set of heuristics to detect the main executable for the application, and will mark it as the ClickOnce application's entry point in the manifest.

Mage.exe никогда не помечает файл как файл "данных".Mage.exe will never automatically mark a file as a "data" file. Это необходимо сделать вручную.You must do this manually. Дополнительные сведения см. в разделе Практическое руководство. включить файл данных в приложение ClickOnce.For more information, see How to: Include a Data File in a ClickOnce Application.

Mage.exe также создает хэш для каждого файла в зависимости от его размера.Mage.exe also generates a hash for each file based on its size. Технология ClickOnce использует эти хэши, чтобы гарантировать отсутствие злонамеренного изменения файлов развертывания с момента создания манифеста.ClickOnce uses these hashes to ensure that no one has tampered with the deployment's files since the manifest was created. При изменении любого из файлов развертывания можно запустить Mage.exe с командой -Update и параметром -FromDirectory, и она обновит хэши и версии сборки для всех указанных файлов.If any of the files in your deployment change, you can run Mage.exe with the -Update command and the -FromDirectory option, and it will update the hashes and assembly versions of all referenced files.

-FromDirectory включает все файлы во всех подкаталогах, найденных в каталоге directoryPath.-FromDirectory will include all files in all subdirectories found within directoryPath.

При использовании параметра -FromDirectory с командой -Update программа Mage.exe удалит из манифеста приложения все файлы, которые больше не существуют в каталоге.If you use -FromDirectory with the -Update command, Mage.exe will remove any files in the application manifest that no longer exist in the directory.
-if, -IconFile filePath-if, -IconFile filePath Манифесты приложений.Application manifests. Задает полный путь к ICO-файлу значка.Specifies the full path to an .ICO icon file. Этот значок отображается рядом с именем приложения в меню "Пуск" и в разделе "Установка или удаление программ".This icon appears beside your application name in the start menu, and in its Add-or-Remove Programs entry. Если значок не задан, используется значок по умолчанию.If no icon is provided, a default icon is used.
-ip, -IncludeProviderURL url-ip, -IncludeProviderURL url truetrue Манифесты развертывания.Deployment manifests. Указывает, содержит ли манифест развертывания значение расположения обновления, заданное параметром -ProviderURL.Indicates whether the deployment manifest includes the update location value set by -ProviderURL.
-i, -Install willInstall-i, -Install willInstall truetrue Манифесты развертывания.Deployment manifests. Указывает, должно ли приложение ClickOnce устанавливаться на локальном компьютере или оно должно запускаться из Интернета.Indicates whether or not the ClickOnce application should install onto the local computer, or whether it should run from the Web. При установке приложения оно появляется в меню Пуск в ОС Windows.Installing an application gives that application a presence in the Windows Start menu. Допустимыми являются значения "true" или "t" и "false" или "f".Valid values are "true" or "t", and "false" or "f".

Если задан параметр -MinVersion и пользователь использует версию, более раннюю по сравнению с -MinVersion , этот параметр вызывает принудительную установку приложения, независимо от значения, переданного в -Install.If you specify the -MinVersion option, and a user has a version less than -MinVersion installed, it will force the application to install, regardless of the value that you pass to -Install.

Данный параметр невозможно использовать одновременно с параметром -BrowserHosted .This option cannot be used with the -BrowserHosted option. Попытка задать оба параметра в одном манифесте приведет к ошибке.Attempting to specify both for the same manifest will result in an error.
-kc, -KeyContainer name-kc, -KeyContainer name Все типы файлов.All file types. Указывает контейнер ключа, содержащий имя закрытого ключа.Specifies the key container that contains the name of the private key. Для этого параметра требуется параметр CryptoProvider.This option requires the CryptoProvider option.

Данный параметр доступен, начиная с .NET Framework 4.7.This option is available starting with .NET Framework 4.7.
-mv, -MinVersion [version]-mv, -MinVersion [version] Версия, указанная в манифесте развертывания ClickOnce и заданная флагом -Version .The version listed in the ClickOnce deployment manifest as specified by the -Version flag. Манифесты развертывания.Deployment manifests. Минимальная версия этого приложения, которую может запустить пользователь.The minimum version of this application a user can run. Этот флаг делает названную версию приложения обязательным обновлением.This flag makes the named version of your application a required update. Если разработчик выпускает версию своего программного продукта с обновлением, включающим в себя критическое изменение или устранение критической уязвимости в системе безопасности, с помощью этого флага можно указать обязательность установки этого обновления и невозможность для пользователя дальнейшего использования предыдущих версий приложения.If you release a version of your product with an update to a breaking change or a critical security flaw, you can use this flag to specify that this update must be installed, and that the user cannot continue to run earlier versions.

Семантика параметраversion совпадает с семантикой аргумента флага -Version .version has the same semantics as the argument to the -Version flag.
-n, -Name nameString-n, -Name nameString РазвертываниеDeploy Все типы файлов.All file types. Имя, используемое для идентификации приложения.The name that is used to identify the application. Технология ClickOnce будет использовать это имя для идентификации приложения в меню Пуск (если для приложения настроена автоматическая установка) и в диалоговых окнах повышения уровня разрешений.ClickOnce will use this name to identify the application in the Start menu (if the application is configured to install itself) and in Permission Elevation dialog boxes. Примечание. Если при обновлении существующего манифеста вы не указали имя издателя с помощью этого параметра, Mage.exe обновляет манифест, используя имя организации, заданное на компьютере.Note: If you are updating an existing manifest and you do not specify a publisher name with this option, Mage.exe updates the manifest with the organization name defined on the computer. Чтобы использовать другое имя, следует обязательно задать требуемое имя издателя с помощью этого параметра.To use a different name, make sure to use this option and specify the desired publisher name.
-pwd, -Password passwd-pwd, -Password passwd Все типы файлов.All file types. Пароль, используемый для подписания манифеста с помощью цифрового сертификата.The password that is used for signing a manifest with a digital certificate. Должен использоваться вместе с параметром -CertFile .Must be used in conjunction with the -CertFile option.
-p, Processor processorValue-p, Processor processorValue MsilMsil Манифесты приложений.Application manifests.

Манифесты развертывания.Deployment manifests.
Архитектура микропроцессора, на которой будет выполняться это развертывание.The microprocessor architecture on which this distribution will run. Это значение обязательно при подготовке одной или нескольких установок, компиляция сборок которых для конкретного микропроцессора была выполнена заранее.This value is required if you are preparing one or more installations whose assemblies have been precompiled for a specific microprocessor. Допустимые значения включают msil, x86, ia64и amd64.Valid values include msil, x86, ia64, and amd64. msil — это промежуточный язык Майкрософт, который означает, что все сборки являются независимыми от платформы, и среда CLR будет выполнять их JIT-компиляцию при первом запуске приложения.msil is Microsoft intermediate language, which means all of your assemblies are platform-independent, and the common language runtime (CLR) will just-in-time compile them when your application is first run.
-pu, -ProviderURL url-pu, -ProviderURL url Манифесты развертывания.Deployment manifests. Задает URL-адрес, который приложение ClickOnce будет использовать для обновлений приложения.Specifies the URL which ClickOnce will examine for application updates.
-pub, -Publisher publisherName-pub, -Publisher publisherName Манифесты приложений.Application manifests.

Манифесты развертывания.Deployment manifests.
Добавляет имя издателя в элемент описания либо манифеста развертывания, либо манифеста приложения.Adds the publisher name to the description element of either the deployment or application manifest. При использовании этого параметра для манифеста приложения должен быть также задан параметр -UseManifestForTrust со значением "true" или "t", в противном случае этот параметр вызовет ошибку.When used on an application manifest, -UseManifestForTrust must also be specified with a value of "true" or "t"; otherwise, this parameter will raise an error.
-s, -SupportURL url-s, -SupportURL url Манифесты приложений.Application manifests.

Манифесты развертывания.Deployment manifests.
Указывает ссылку, которая появляется в диалоговом окне "Установка и удаление программ" для приложения ClickOnce.Specifies the link that appears in Add or Remove Programs for the ClickOnce application.
-ti, -TimestampUri uri-ti, -TimestampUri uri Манифесты приложений.Application manifests.

Манифесты развертывания.Deployment manifests.
URL-адрес службы цифровых отметок времени.The URL of a digital timestamping service. Установка меток времени в манифестах позволяет избежать повторной подписи манифестов, когда срок действия цифрового сертификата истекает до развертывания следующей версии приложения.Timestamping the manifests prevents you from having to re-sign the manifests should your digital certificate expire before you deploy the next version of your application. Дополнительные сведения см. в разделе Участники программы корневых сертификатов Windows.For more information, see Windows root certificate program members.
-t, -ToFile filePath-t, -ToFile filePath — New:- New:
— Deployment: deploy.application- Deployment: deploy.application
— Application: application.exe.manifest- Application: application.exe.manifest
— Update:- Update:
— Входной файл.- The input file.
Все типы файлов.All file types. Задает выходной путь для созданного или измененного файла.Specifies the output path of the file that has been created or modified.

Если при использовании команды -New не задан параметр -ToFile, результат записывается в текущий рабочий каталог.If -ToFile is not supplied when you use -New, the output is written to the current working directory. Если при использовании команды -Update не задан параметр -ToFile, программа Mage.exe записывает файл обратно во входной файл.If -ToFile is not supplied when you use -Update, Mage.exe will write the file back to the input file.
-tr, -TrustLevel level-tr, -TrustLevel level Зависит от зоны, в которой находится URL-адрес приложения.Based on the zone in which the application URL resides. Манифесты приложений.Application manifests. Уровень доверия, предоставляемый приложению на клиентских компьютерах.The level of trust to grant the application on client computers. Возможными значениями являются "Internet", "Intranet" и "FullTrust".Values include "Internet", "Intranet", and "FullTrust".
-um, -UseManifestForTrust willUseForTrust-um, -UseManifestForTrust willUseForTrust FalseFalse Манифесты приложений.Application manifests. Определяет, будет ли использоваться цифровая подпись манифеста приложения для принятия решений о доверии при выполнении приложения на клиенте.Specifies whether the digital signature of the application manifest will be used for making trust decisions when the application runs on the client. Задание значения "true" или "t" указывает, что для решений о доверии будет использоваться манифест приложения.Specifying "true" or "t" indicates that the application manifest will be used for trust decisions. Задание значения "false" или "f" указывает, что будет использоваться подпись манифеста развертывания.Specifying "false" or "f" indicates that the signature of the deployment manifest will be used.
-v, -Version versionNumber-v, -Version versionNumber 1.0.0.01.0.0.0 Манифесты приложений.Application manifests.

Манифесты развертывания.Deployment manifests.
Версия развертывания.The version of the deployment. Аргумент должен быть строкой допустимой версии в формате "N.N.N.N", где "N" — это 32-разрядное целое число без знака.The argument must be a valid version string of the format "N.N.N.N", where "N" is an unsigned 32-bit integer.
-wpf, -WPFBrowserApp isWPFApp-wpf, -WPFBrowserApp isWPFApp Falsefalse Манифесты приложений.Application manifests.

Манифесты развертывания.Deployment manifests.
Этот флаг используется, только если приложение является приложением Windows Presentation Foundation (WPF), размещаемым в Internet Explorer, а не автономным исполняемым файлом.Use this flag only if the application is a Windows Presentation Foundation (WPF) application that will be hosted inside of Internet Explorer, and is not a stand-alone executable. Допустимыми являются значения "true" или "t" и "false" или "f".Valid values are "true" or "t", and "false" or "f".

Для манифестов приложений вставляет атрибут hostInBrowser под элементом entryPoint манифеста приложения.For application manifests, inserts the hostInBrowser attribute under the entryPoint element of the application manifest.

Для манифестов развертывания задает значение атрибута install для элемента deployment как "false" и сохраняет манифест развертывания с расширением XBAP.For deployment manifests, sets the install attribute on the deployment element to false, and saves the deployment manifest with a .xbap extension. Задание этого аргумента вместе с аргументом -Install приводит к ошибке, так как приложение, размещенное в браузере, не может быть устанавливаемым, автономным приложением.Specifying this argument along with the -Install argument produces an error, because a browser-hosted application cannot be an installed, offline application.

Параметры команды "Sign"Sign command options

В следующей таблице указаны параметры команды -Sign , применяемой ко всем типам файлов.The following table shows the options supported by the -Sign command, which apply to all types of files.

ПараметрыOptions ОПИСАНИЕDescription
-cf, -CertFile filePath-cf, -CertFile filePath Задает местонахождение цифрового сертификата для подписания манифеста.Specifies The location of a digital certificate for signing a manifest. Этот параметр может использоваться в сочетании с параметром -Password, если для сертификата требуется пароль файлов обмена персональными данными (PFX).This option can be used in conjunction with the -Password option if the certificate requires a password for Personal Information Exchange (PFX) files. Начиная с .NET Framework 4.7, при отсутствии закрытого ключа в файле требуется сочетание параметров -CryptoProvider и -KeyContainer.Starting with .NET Framework 4.7, if the file does not contain a private key, a combination of the -CryptoProvider and -KeyContainer options is required.

Начиная с .NET Framework 4.6.2, Mage.exe подписывает манифесты с использованием сертификатов CNG и CAPI.Starting with .NET Framework 4.6.2, Mage.exe signs manifests with CNG as well as CAPI certificates.
-ch, -CertHash hashSignature-ch, -CertHash hashSignature Хэш цифрового сертификата, хранящегося в хранилище личных сертификатов на клиентском компьютере.The hash of a digital certificate stored in the personal certificate store of the client computer. Соответствует свойству отпечатка цифрового сертификата, отображаемого в консоли сертификатов Windows.This corresponds to the Thumbprint property of a digital certificate viewed in the Windows Certificates Console.

ПараметрhashSignature может быть задан или в верхнем, или в нижнем регистре, и может предоставляться либо как единая строка, либо в виде всех октетов отпечатка, разделенных пробелами, и всего отпечатка, заключенного в кавычки.hashSignature can be either uppercase or lowercase, and can be supplied either as a single string or with each octet of the Thumbprint separated by spaces and the entire Thumbprint enclosed in quotation marks.
-csp, -CryptoProvider provider-name-csp, -CryptoProvider provider-name Указывает имя поставщика служб шифрования (CSP), содержащего контейнер закрытого ключа.Specifies the name of a cryptographic service provider (CSP) that contains the private key container. Для этого параметра требуется параметр -KeyContainer.This option requires the -KeyContainer option.

Данный параметр доступен, начиная с .NET Framework 4.7.This option is available starting with .NET Framework 4.7.
-kc, -KeyContainer name-kc, -KeyContainer name Указывает контейнер ключа, содержащий имя закрытого ключа.Specifies the key container that contains the name of the private key. Для этого параметра требуется параметр CryptoProvider.This option requires the CryptoProvider option.

Данный параметр доступен, начиная с .NET Framework 4.7.This option is available starting with .NET Framework 4.7.
-pwd, -Password passwd-pwd, -Password passwd Пароль, используемый для подписания манифеста с помощью цифрового сертификата.The password that is used for signing a manifest with a digital certificate. Должен использоваться вместе с параметром -CertFile .Must be used in conjunction with the -CertFile option.
-t, -ToFile filePath-t, -ToFile filePath Задает выходной путь для созданного или измененного файла.Specifies the output path of the file that has been created or modified.

ПримечанияRemarks

Все аргументы программы Mage.exe не зависят от регистра символов.All arguments to Mage.exe are case-insensitive. Перед командами и параметрами должен быть поставлен дефис (-) или косая черта (/).Commands and options can be prefixed with a dash (-) or a forward slash (/).

Все аргументы, используемые с командой -Sign , всегда можно использовать вместе с командой -New или -Update .All of the arguments used with the -Sign command can be used at any time with the -New or -Update commands as well. Следующие команды являются эквивалентными.The following commands are equivalent.

mage -Sign c:\HelloWorldDeployment\HelloWorld.deploy -CertFile cert.pfx
mage -Update c:\HelloWorldDeployment\HelloWorld.deploy -CertFile cert.pfx

Примечание

Начиная с .NET Framework 4.6.2, также поддерживаются сертификаты CNG.Beginning with .NET Framework version 4.6.2, CNG certificates are also supported.

Подписание — это последняя задача, которую должен выполнить разработчик, поскольку для проверки правильности подписи документа подписанный документ использует хэш файла.Signing is the last task you should perform, because a signed document uses a hash of the file to verify that the signature is valid for the document. При внесении в файл каких-либо изменений разработчик должен снова подписать этот файл.If you make any changes to a signed file, you must sign it again. Если подписывается документ, который уже был подписан, Mage.exe заменяет старую подпись новой.If you sign a document that was previously signed, Mage.exe will replace the old signature with the new.

При использовании параметра -AppManifest для заполнения манифеста развертывания программа Mage.exe предполагает, что манифест приложения будет находиться в том же каталоге, что и манифест развертывания, в подкаталоге, название которого соответствует текущей версии развертывания, и соответствующим образом настраивает манифест развертывания.When you use the -AppManifest option to populate a deployment manifest, Mage.exe will assume that your application manifest will reside in the same directory as the deployment manifest within a subdirectory named after the current deployment version, and will configure your deployment manifest appropriately. Если манифест приложения будет находиться в другом месте, для указания альтернативного расположения можно использовать параметр -AppCodeBase .If your application manifest will reside elsewhere, use the -AppCodeBase option to set the alternate location.

Перед развертыванием приложения манифест развертывания и манифест приложения должны быть подписаны.Your deployment and application manifest must be signed before you deploy your application. Руководство по подписанию документов см. в разделе Trusted Application Deployment Overview.For guidance about signing manifests, see Trusted Application Deployment Overview.

Параметр -TrustLevel для манифестов приложений описывает набор разрешений, необходимых приложению для выполнения на клиентском компьютере.The -TrustLevel option for application manifests describes the permission set an application requires to run on the client computer. По умолчанию уровень доверия, назначаемый приложениями, зависит от зоны , в которой находится URL-адрес.By default, applications are assigned a trust level based on the zone in which their URL resides. Приложения, развертываемые в корпоративной сети, обычно помещаются в зоне интрасети, а приложения, развертываемые через Интернет, размещаются в зоне Интернета.Applications deployed over a corporate network are generally placed in the Intranet zone, while those deployed over the Internet are placed in the Internet zone. Обе зоны безопасности налагают на приложение ограничения доступа к локальным ресурсам, при этом зона интрасети предоставляет чуть больше прав, чем зона Интернета.Both security zones place restrictions on the application's access to local resources, with the Intranet zone slightly more permissive than the Internet zone. В зоне полного доверия (FullTrust) приложениям предоставляется полный доступ к локальным ресурсам компьютера.The FullTrust zone gives applications complete access to a computer's local resources. Если для помещения приложения в эту зону используется параметр -TrustLevel , менеджер доверия среды CLR предложит пользователю решить, следует ли предоставить повышенный уровень доверия.If you use the -TrustLevel option to place an application in this zone, the Trust Manager component of the CLR will prompt the user to decide whether he or she wants to grant this higher level of trust. Если приложение развертывается в корпоративной сети, можно использовать развертывание доверенных приложений, чтобы повысить уровень доверия приложения без участия пользователя.If you are deploying your application over a corporate network, you can use Trusted Application Deployment to raise the trust level of the application without prompting the user.

Манифесты приложений также поддерживают настраиваемые разделы доверия.Application manifests also support custom trust sections. Это помогает приложению соблюдать принцип безопасности (запрос минимально необходимых разрешений), позволяя настроить манифест на запрос только конкретных разрешений, которые требуются приложению для работы.This helps your application obey the security principle of requesting least permission, as you can configure the manifest to demand only those specific permissions that the application requires in order to execute. Mage.exe не поддерживает прямое добавление настраиваемого раздела доверия.Mage.exe does not directly support adding a custom trust section. Такой раздел можно добавить с помощью текстового редактора, средства синтаксического анализа XML или графического средства MageUI.exe.You can add one using a text editor, an XML parser, or the graphical tool MageUI.exe. Дополнительные сведения об использовании MageUI.exe для добавления настраиваемых разделов доверия см. в разделе MageUI.exe (инструмент создания и изменения манифестов, графический клиент).For more information about how to use MageUI.exe to add custom trust sections, see MageUI.exe (Manifest Generation and Editing Tool, Graphical Client).

Visual Studio 2017 включает Mage.exe версии 4.6.1.Visual Studio 2017 includes version 4.6.1 of Mage.exe. Манифесты, созданные с помощью этой версии Mage.exe, предназначены для .NET Framework 4.Manifests created with this version of Mage.exe target .NET Framework 4. Для работы в более ранних версиях платформы .NET Framework используйте более раннюю версию Mage.exe.To target older versions of the .NET Framework, use an earlier version of Mage.exe.

Если вы добавляете или удаляете сборки из существующего манифеста или повторно подписываете существующий манифест, программа Mage.exe не обновляет манифест до .NET Framework 4.When you add or remove assemblies from an existing manifest, or re-sign an existing manifest, Mage.exe does not update the manifest to target .NET Framework 4.

В следующих таблицах показаны эти возможности и ограничения.The following tables show these features and restrictions:

Версия манифестаManifest version ОперацияOperation Mage v2.0Mage v2.0 Mage v4.0Mage v4.0
Манифест для приложений, предназначенных для .NET Framework версии 2.0 или 3.xManifest for applications targeting version 2.0 or 3.x of the .NET Framework ОткрытьOpen ОКOK ОКOK
ЗакрытьClose ОКOK ОКOK
СохранениеSave ОКOK ОКOK
Повторно подписатьRe-sign ОКOK ОКOK
НовыйNew ОКOK Не поддерживаетсяNot supported
Обновить (см. ниже)Update (see below) ОКOK ОКOK
Манифест для приложений, предназначенных для .NET Framework версии 4Manifest for applications targeting version 4 of the .NET Framework ОткрытьOpen ОКOK ОКOK
ЗакрытьClose ОКOK ОКOK
СохранениеSave ОКOK ОКOK
Повторно подписатьRe-sign ОКOK ОКOK
НовыйNew Не поддерживаетсяNot supported ОКOK
Обновить (см. ниже)Update (see below) Не поддерживаетсяNot supported ОКOK
Версия манифестаManifest version Обновить сведения об операцииUpdate Operation Details Mage v2.0Mage v2.0 Mage v4.0Mage v4.0
Манифест для приложений, предназначенных для .NET Framework версии 2.0 или 3.xManifest for applications targeting version 2.0 or 3.x of the .NET Framework Изменить сборкуModify an assembly ОКOK ОКOK
Добавить сборкуAdd an assembly ОКOK ОКOK
Удалить сборкуRemove an assembly ОКOK ОКOK
Манифест для приложений, предназначенных для .NET Framework версии 4Manifest for applications targeting version 4 of the .NET Framework Изменить сборкуModify an assembly Не поддерживаетсяNot supported ОКOK
Добавить сборкуAdd an assembly Не поддерживаетсяNot supported ОКOK
Удалить сборкуRemove an assembly Не поддерживаетсяNot supported ОКOK

Программа Mage.exe создает новые манифесты, предназначенные для .NET Framework 4 (клиентский профиль).NET Framework 4 Client Profile.Mage.exe creates new manifests that target the .NET Framework 4 (клиентский профиль).NET Framework 4 Client Profile. Приложения ClickOnce, предназначенные для .NET Framework 4 (клиентский профиль).NET Framework 4 Client Profile, могут работать как в .NET Framework 4 (клиентский профиль).NET Framework 4 Client Profile, так и в полной версии .NET Framework 4.ClickOnce applications that target the .NET Framework 4 (клиентский профиль).NET Framework 4 Client Profile can run on both the .NET Framework 4 (клиентский профиль).NET Framework 4 Client Profile and the full version of the .NET Framework 4. Если приложение предназначено для полной версии .NET Framework 4 и не может выполняться в .NET Framework 4 (клиентский профиль).NET Framework 4 Client Profile, удалите клиентский элемент <framework> с помощью текстового редактора и повторно подпишите манифест.If your application targets the full version of the .NET Framework 4 and cannot run on the .NET Framework 4 (клиентский профиль).NET Framework 4 Client Profile, remove the client <framework> element by using a text editor and re-sign the manifest.

Ниже приведен пример элемента <framework>, предназначенного для .NET Framework 4 (клиентский профиль).NET Framework 4 Client Profile.The following is a sample <framework> element that targets the .NET Framework 4 (клиентский профиль).NET Framework 4 Client Profile:

<framework targetVersion="4.0" profile="client" supportedRuntime="4.0.20506" />

ПримерыExamples

В следующем примере показано открытие пользовательского интерфейса для программы Mage (MageUI.exe).The following example opens the user interface for Mage (MageUI.exe).

mage

В следующих примерах показано создание манифеста развертывания и манифеста приложения по умолчанию.The following examples create a default deployment manifest and application manifest. Эти файлы создаются в текущем рабочем каталоге и называются "deploy.application" и "application.exe.manifest" соответственно.These files are all created in the current working directory and are named deploy.application and application.exe.manifest, respectively.

mage -New Deployment
mage -New Application

В следующем примере показано создание манифеста приложения, заполненного всеми сборками и файлами ресурсов из текущего каталога.The following example creates an application manifest populated with all of the assemblies and resource files from the current directory.

mage -New Application -FromDirectory . -Version 1.0.0.0

В следующем примере показано продолжение предыдущего примера с указанием имени развертывания и целевого микропроцессора.The following example continues the previous example by specifying the deployment name and target microprocessor. В нем также показано задание URL-адреса, который приложение ClickOnce должно использовать для проверки обновлений.It also specifies a URL against which ClickOnce should check for updates.

mage -New Application -FromDirectory . -Name "Hello, World! Application" -Version 1.0.0.0 -Processor "x86" -ProviderUrl http://internalserver/HelloWorld/

В следующем примере показано создание пары манифестов для развертывания приложения WPF, размещаемого в Internet Explorer.The following example demonstrates how to create a pair of manifests for deploying a WPF application that will be hosted in Internet Explorer.

mage -New Application -FromDirectory . -Version 1.0.0.0 -WPFBrowserApp true
mage -New Deployment -AppManifest 1.0.0.0\application.manifest -WPFBrowserApp true

В следующем примере показано создание манифеста приложения, заполненного всеми сборками и файлами ресурсов из текущего каталога и необходимыми подписями.The following example creates an application manifest populated with all of the assemblies and resource files from the current directory and signs.

mage -New Application -FromDirectory . -Version 1.0.0.0 -KeyContainer keypair.snk -CryptoProvider "Microsoft Enhanced Cryptographic Provider v1.0"

В следующем примере в манифест развертывания добавляются сведения из манифеста приложения и задается база кода для местонахождения манифеста приложения.The following example updates a deployment manifest with information from an application manifest, and sets the code base for the location of the application manifest.

mage -Update HelloWorld.deploy -AppManifest 1.0.0.0\application.manifest -AppCodeBase http://internalserver/HelloWorld.deploy

В следующем примере изменяется манифест развертывания для принудительного обновления установленной у пользователя версии.The following example edits the deployment manifest to force an update of the user's installed version.

mage -Update c:\HelloWorldDeployment\HelloWorld.deploy -MinVersion 1.1.0.0

В следующем примере манифест развертывания получает указание извлекать манифест приложения из другого каталога.The following example tells the deployment manifest to retrieve the application manifest from another directory.

mage -Update HelloWorld.deploy -AppCodeBase http://anotherserver/HelloWorld/1.1.0.0/

В следующем примере существующий манифест развертывания подписывается с помощью цифрового сертификата в текущем рабочем каталоге.The following example signs an existing deployment manifest using a digital certificate in the current working directory.

mage -Sign deploy.application -CertFile cert.pfx -Password <passwd>

В следующем примере существующий манифест развертывания подписывается с помощью цифрового сертификата и закрытого ключа в текущем рабочем каталоге.The following example signs an existing deployment manifest using a digital certificate and private key in the current working directory.

mage -Sign deploy.application -CertFile cert.pfx -KeyContainer keyfile.snk -CryptoProvider "Microsoft Enhanced Cryptographic Provider v1.0"

См. такжеSee also